Lines of
single_doc/def.lua
from check-in 554fa89569
that are changed by the sequence of edits moving toward
check-in 4f08f247d9:
1: ---@meta
2:
3: ---@class Card
4: Card = {}
5:
6: ---@class Duel
7: Duel = {}
8:
9: ---@class Effect
10: Effect = {}
11:
12: ---@class Group
13: Group = {}
14:
15: ---@class Debug
16: Debug = {}
17:
18: -----
19:
554fa89569 2024-06-28 20: ---
21: ---@return boolean
22: ---@param c Card
23: ---@param tp integer
24: function Card.mat_filter(c,tp) end
25:
26: ---返回c的当前卡号(可能因为效果改变)
27: ---@return integer
28: ---@return integer|nil
29: ---@param c Card
30: function Card.GetCode(c) end
31:
32: ---返回c的卡片记载的卡号
33: ---@return integer
34: ---@param c Card
35: function Card.GetOriginalCode(c) end
36:
37: ---返回c规则上的卡号(这张卡规则上当作...使用)
38: ---@return integer
39: ---@return integer
40: ---@param c Card
41: function Card.GetOriginalCodeRule(c) end
42:
43: ---返回c作为融合素材时的卡号(包括c原本的卡号)
44: ---@return integer
45: ---@return integer|nil
46: ---@return ...|nil
47: ---@param c Card
48: function Card.GetFusionCode(c) end
49:
50: ---返回c作为link素材的卡号(包括c原本的卡号)
51: ---@return integer
52: ---@return integer|nil
53: ---@return ...|nil
54: ---@param c Card
55: function Card.GetLinkCode(c) end
56:
57: ---检查c作为融合素材时能否当作卡号为code的卡,额外参数是其他code
58: ---@return boolean
59: ---@param c Card
60: ---@param code integer
61: ---@param ...? integer
62: function Card.IsFusionCode(c,code,...) end
63:
64: ---检查c作为link素材时能否当作卡号为code的卡,额外参数是其他code
65: ---@return boolean
66: ---@param c Card
67: ---@param code integer
68: ---@param ...? integer
69: function Card.IsLinkCode(c,code,...) end
70:
71: ---检查c是否是卡名含有setname的卡
72: ---@return boolean
73: ---@param c Card
74: ---@param ... integer
75: function Card.IsSetCard(c,...) end
76:
77: ---检查c是否是原本卡名含有setname的卡
78: ---@return boolean
79: ---@param c Card
80: ---@param ... integer
81: function Card.IsOriginalSetCard(c,...) end
82:
83: ---检查c位置变化之前是否是名字含有setname的卡
84: ---@return boolean
85: ---@param c Card
86: ---@param ... integer
87: function Card.IsPreviousSetCard(c,...) end
88:
89: ---检查c作为融合素材时能否当作名字含有setname的卡
90: ---@return boolean
91: ---@param c Card
92: ---@param ... integer
93: function Card.IsFusionSetCard(c,...) end
94:
95: ---检查c作为link素材时能否当作名字含有setname的卡
96: ---@return boolean
97: ---@param c Card
98: ---@param ... integer
99: function Card.IsLinkSetCard(c,...) end
100:
101: ---返回c的当前类型
102: ---@return integer
103: ---@param c Card
104: function Card.GetType(c) end
105:
106: ---返回c的卡片记载的类型
107: ---@return integer
108: ---@param c Card
109: function Card.GetOriginalType(c) end
110:
111: ---返回c用作融合素材时的类型(与GetType的区别在于对于魔陷区的怪兽卡,返回其原本类型)
112: ---@return integer
113: ---@param c Card
114: function Card.GetFusionType(c) end
115:
116: ---返回c用作同调素材时的类型(与GetType的区别在于对于魔陷区的怪兽卡,返回其原本类型)
117: ---@return integer
118: ---@param c Card
119: function Card.GetSynchroType(c) end
120:
121: ---返回c用作同调素材时的类型(与GetType的区别在于对于魔陷区的怪兽卡,返回其原本类型)
122: ---@return integer
123: ---@param c Card
124: function Card.GetXyzType(c) end
125:
126: ---返回c用作link素材时的类型(与GetType的区别在于对于魔陷区的怪兽卡,返回其原本类型)
127: ---@return integer
128: ---@param c Card
129: function Card.GetLinkType(c) end
130:
131: ---返回c的当前等级
132: ---@return integer
133: ---@param c Card
134: function Card.GetLevel(c) end
135:
136: ---返回c的当前阶级
137: ---@return integer
138: ---@param c Card
139: function Card.GetRank(c) end
140:
141: ---返回c的连接标记数量
142: ---@return integer
143: ---@param c Card
144: function Card.GetLink(c) end
145:
146: ---返回c的对于同调怪兽sc的同调用等级
147: ---此函数除了某些特定卡如调节支援士,返回值与Card.GetLevel(c)相同
148: ---@return integer
149: ---@param c Card
150: ---@param sc Card
151: function Card.GetSynchroLevel(c,sc) end
152:
153: ---返回c的对于仪式怪兽rc仪式解放等级
154: ---此函数除了某些特定卡如仪式供物,返回值与Card.GetLevel(c)相同
155: ---@return integer
156: ---@param c Card
157: ---@param rc Card
158: function Card.GetRitualLevel(c,rc) end
159:
160: ---返回c的卡片记载的等级
161: ---@return integer
162: ---@param c Card
163: function Card.GetOriginalLevel(c) end
164:
165: ---返回c的卡片记载的阶级
166: ---@return integer
167: ---@param c Card
168: function Card.GetOriginalRank(c) end
169:
170: ---检查c对于XYZ怪兽xyzc的XYZ用等级是否是lv
171: ---@return boolean
172: ---@param c Card
173: ---@param xyzc Card
174: ---@param lv integer
175: function Card.IsXyzLevel(c,xyzc,lv) end
176:
177: ---返回c的左灵摆刻度
178: ---@return integer
179: ---@param c Card
180: function Card.GetLeftScale(c) end
181:
182: ---返回c的原本的左灵摆刻度
183: ---@return integer
184: ---@param c Card
185: function Card.GetOriginalLeftScale(c) end
186:
187: ---返回c的右灵摆刻度
188: ---@return integer
189: ---@param c Card
190: function Card.GetRightScale(c) end
191:
192: ---返回c的原本的右灵摆刻度
193: ---@return integer
194: ---@param c Card
195: function Card.GetOriginalRightScale(c) end
196:
197: ---返回c的当前灵摆刻度。如果在左灵摆区域则返回左刻度,在右灵摆区域或是不在灵摆区域则返回右刻度
198: ---@return integer
199: ---@param c Card
200: function Card.GetCurrentScale(c) end
201:
202: ---检查c是否是连接标记为 dir 的卡
203: ---@return boolean
204: ---@param c Card
205: ---@param dir integer
206: function Card.IsLinkMarker(c,dir) end
207:
208: ---返回c所连接区的卡片组
209: ---@return Group
210: ---@param c Card
211: function Card.GetLinkedGroup(c) end
212:
213: ---返回c所连接区的怪兽卡数量
214: ---@return integer
215: ---@param c Card
216: function Card.GetLinkedGroupCount(c) end
217:
218: ---返回c的[以 player 来看的场上的]连接区域
219: ---@return integer
220: ---@param c Card
221: ---@param player? integer default: c:GetControler()
222: function Card.GetLinkedZone(c,player) end
223:
224: ---返回和c互相连接状态的卡片组
225: ---@return Group
226: ---@param c Card
227: function Card.GetMutualLinkedGroup(c) end
228:
229: ---返回和c互相连接状态的卡片组的数量
230: ---@return integer
231: ---@param c Card
232: function Card.GetMutualLinkedGroupCount(c) end
233:
234: ---返回[以 player 来看的]与卡片 c 互相连接的卡 所在的区域
235: ---@return integer
236: ---@param c Card
237: ---@param player? integer default: c:GetControler()
238: function Card.GetMutualLinkedZone(c,player) end
239:
240: ---检查c是否是连接状态
241: ---@return boolean
242: ---@param c Card
243: function Card.IsLinkState(c) end
244:
245: ---检查c是否是额外连接状态
246: ---@return boolean
247: ---@param c Card
248: function Card.IsExtraLinkState(c) end
249:
250: ---返回与c同一纵列的c以外的卡片组,后2个参数会计算卡片c左边 left 列 和右边 right 列的所有卡,
251: ---比如c在中间的格子,那么 c:GetColumnGroup(2,2) 就相当于获取了除场地魔法以外的 场上的所有卡
252: ---@return Group
253: ---@param c Card
254: ---@param left? integer default: 0
255: ---@param right? integer default: 0
256: function Card.GetColumnGroup(c,left,right) end
257:
258: ---用法同上,只是返回的是卡片的数量
259: ---@return integer
260: ---@param c Card
261: ---@param left? integer default: 0
262: ---@param right? integer default: 0
263: function Card.GetColumnGroupCount(c,left,right) end
264:
265: ---返回[以 player 来看的] location 范围内与 c 同一纵列[包含左边 left 列和右边 right 列]的区域,
266: ---location 的值是 LOCATION_MZONE,LOCATION_SZONE,LOCATIOIN_ONFIELD
267: ---@return integer
268: ---@param c Card
269: ---@param location integer
270: ---@param left? integer
271: ---@param right? integer
272: ---@param player? integer
273: function Card.GetColumnZone(c,location,left,right,player) end
274:
275: ---检查与c同一纵列的区域是否全都有卡
276: ---@return boolean
277: ---@param c Card
278: function Card.IsAllColumn(c) end
279:
280: ---返回c的当前属性
281: ---注:对某些多属性怪兽如光与暗之龙,此函数的返回值可能是几个属性的组合值
282: ---@return integer
283: ---@param c Card
284: function Card.GetAttribute(c) end
285:
286: ---返回c的卡片记载的属性
287: ---@return integer
288: ---@param c Card
289: function Card.GetOriginalAttribute(c) end
290:
291: ---返回c[由player融合召唤时]用作融合素材时的属性
292: ---@return integer
293: ---@param c Card
294: ---@param player? integer
295: function Card.GetFusionAttribute(c,player) end
296:
297: ---返回c[由player连接召唤时]用作连接素材时的属性
298: ---@return integer
299: ---@param c Card
300: ---@param player? integer
301: function Card.GetLinkAttribute(c,player) end
302:
303: ---检查c在墓地中会变成什么属性。
304: ---第二个参数可选,指示假设送去墓地是由于哪个玩家。
305: ---@return integer
306: ---@param c Card
307: ---@param reasonPlayer? integer
308: function Card.GetAttributeInGrave(c,reasonPlayer) end
309:
310: ---返回c的当前种族
311: ---注:对某些多种族怪兽如动画效果的魔术猿,此函数的返回值可能是几个种族的组合值
312: ---@return integer
313: ---@param c Card
314: function Card.GetRace(c) end
315:
316: ---返回c的卡片记载的种族
317: ---@return integer
318: ---@param c Card
319: function Card.GetOriginalRace(c) end
320:
321: ---返回c[由player连接召唤时]作为连接素材时的种族
322: ---@return integer
323: ---@param c Card
324: ---@param player? integer
325: function Card.GetLinkRace(c,player) end
326:
327: ---检查c在墓地中会变成什么种族。
328: ---第二个参数可选,指示假设送去墓地是由于哪个玩家。
329: ---@return integer
330: ---@param c Card
331: ---@param reasonPlayer? integer
332: function Card.GetRaceInGrave(c,reasonPlayer) end
333:
334: ---返回c的当前攻击力
335: ---@return integer
336: ---@param c Card
337: function Card.GetAttack(c) end
338:
339: ---返回c的原本攻击力
340: ---@return integer
341: ---@param c Card
342: function Card.GetBaseAttack(c) end
343:
344: ---返回c的卡片记载的攻击力,返回值是负数表示是"?"
345: ---@return integer
346: ---@param c Card
347: function Card.GetTextAttack(c) end
348:
349: ---返回c的当前守备力
350: ---@return integer
351: ---@param c Card
352: function Card.GetDefense(c) end
353:
354: ---返回c的原本守备力
355: ---@return integer
356: ---@param c Card
357: function Card.GetBaseDefense(c) end
358:
359: ---返回c的卡片记载的守备力,返回值是负数表示是"?"
360: ---@return integer
361: ---@param c Card
362: function Card.GetTextDefense(c) end
363:
364: ---返回c位置变化之前在场上的卡号
365: ---@return integer
366: ---@return integer|nil
367: ---@param c Card
368: function Card.GetPreviousCodeOnField(c) end
369:
370: ---返回c位置变化之前在场上的类型
371: ---@return integer
372: ---@param c Card
373: function Card.GetPreviousTypeOnField(c) end
374:
375: ---返回c位置变化之前在场上的等级
376: ---@return integer
377: ---@param c Card
378: function Card.GetPreviousLevelOnField(c) end
379:
380: ---返回c位置变化之前在场上的阶级
381: ---@return integer
382: ---@param c Card
383: function Card.GetPreviousRankOnField(c) end
384:
385: ---返回c位置变化之前在场上的属性
386: ---@return integer
387: ---@param c Card
388: function Card.GetPreviousAttributeOnField(c) end
389:
390: ---返回c位置变化之前在场上的种族
391: ---@return integer
392: ---@param c Card
393: function Card.GetPreviousRaceOnField(c) end
394:
395: ---返回c位置变化之前在场上的攻击力
396: ---@return integer
397: ---@param c Card
398: function Card.GetPreviousAttackOnField(c) end
399:
400: ---返回c位置变化之前在场上的守备力
401: ---@return integer
402: ---@param c Card
403: function Card.GetPreviousDefenseOnField(c) end
404:
405: ---返回c的持有者
406: ---@return integer
407: ---@param c Card
408: function Card.GetOwner(c) end
409:
410: ---返回c的当前控制者
411: ---@return integer
412: ---@param c Card
413: function Card.GetControler(c) end
414:
415: ---返回c的位置变化之前的控制者
416: ---@return integer
417: ---@param c Card
418: function Card.GetPreviousControler(c) end
419:
420: ---设置c来到当前位置的原因为reason
421: ---@return boolean
422: ---@param c Card
423: ---@param reason integer
424: function Card.SetReason(c,reason) end
425:
426: ---返回c的位置变化原因
427: ---@return integer
428: ---@param c Card
429: function Card.GetReason(c) end
430:
431: ---返回导致c的位置变化的卡
432: ---此函数仅在某卡被战斗破坏时,因为上级召唤被解放,或者成为特殊召唤使用的素材时有效
433: ---@return Card
434: ---@param c Card
435: function Card.GetReasonCard(c) end
436:
437: ---返回导致c的位置变化的玩家
438: ---@return integer
439: ---@param c Card
440: function Card.GetReasonPlayer(c) end
441:
442: ---返回导致c的位置变化的效果
443: ---@return Effect
444: ---@param c Card
445: function Card.GetReasonEffect(c) end
446:
447: ---返回c当前的表示形式
448: ---@return integer
449: ---@param c Card
450: function Card.GetPosition(c) end
451:
452: ---返回c位置变化前的表示形式
453: ---@return integer
454: ---@param c Card
455: function Card.GetPreviousPosition(c) end
456:
457: ---返回c在本次战斗发生之前的表示形式
458: ---@return integer
459: ---@param c Card
460: function Card.GetBattlePosition(c) end
461:
462: ---返回c当前的所在位置
463: ---@return integer
464: ---@param c Card
465: function Card.GetLocation(c) end
466:
467: ---返回c位置变化前的所在的位置
468: ---@return integer
469: ---@param c Card
470: function Card.GetPreviousLocation(c) end
471:
472: ---返回c在当前位置的序号
473: ---在场上时,序号代表所在的格子,从左往右分别是0-4,场地魔法格的序号为5,左右灵摆区域为6-7
474: ---在其它地方时,序号表示的是第几张卡,最下面的卡的序号为0
475: ---@return integer
476: ---@param c Card
477: function Card.GetSequence(c) end
478:
479: ---返回c位置变化前的序号
480: ---@return integer
481: ---@param c Card
482: function Card.GetPreviousSequence(c) end
483:
484: ---检查c是否被卡名含有setname的卡特殊召唤
485: ---@return boolean
486: ---@param c Card
487: ---@param ... integer
488: function Card.IsSpecialSummonSetCard(c,...) end
489:
490: ---返回c的特殊召唤的信息
491: ---SUMMON_INFO_CODE
492: ---SUMMON_INFO_CODE2
493: ---SUMMON_INFO_TYPE
494: ---SUMMON_INFO_LEVEL
495: ---SUMMON_INFO_RANK
496: ---SUMMON_INFO_ATTRIBUTE
497: ---SUMMON_INFO_RACE
498: ---SUMMON_INFO_ATTACK
499: ---SUMMON_INFO_DEFENSE
500: ---SUMMON_INFO_REASON_EFFET
501: ---@return ...
502: ---@param c Card
503: ---@param ... integer
504: function Card.GetSpecialSummonInfo(c,...) end
505:
506: ---返回c的召唤/特殊召唤的方式
507: ---@return integer
508: ---@param c Card
509: function Card.GetSummonType(c) end
510:
511: ---返回c的召唤/特殊召唤的位置
512: ---@return integer
513: ---@param c Card
514: function Card.GetSummonLocation(c) end
515:
516: ---返回召唤/特殊召唤 c 上场的玩家
517: ---@return integer
518: ---@param c Card
519: function Card.GetSummonPlayer(c) end
520:
521: ---返回c位置变化的目的地
522: ---此函数仅在处理位置转移代替效果时有效
523: ---@return integer
524: ---@param c Card
525: function Card.GetDestination(c) end
526:
527: ---返回c离场时因改变去向的效果(如大宇宙)的目的地
528: ---@return integer
529: ---@param c Card
530: function Card.GetLeaveFieldDest(c) end
531:
532: ---返回c转移到当前位置的回合
533: ---@return integer
534: ---@param c Card
535: function Card.GetTurnID(c) end
536:
537: ---返回c转移到当前位置的时间标识
538: ---此数值唯一,越小表示c是越早出现在那个位置
539: ---卡片从里侧翻开也会改变此数值
540: ---@return integer
541: ---@param c Card
542: function Card.GetFieldID(c) end
543:
544: ---返回c转移到当前位置的真实的时间标识
545: ---卡片从里侧翻开不会改变此数值
546: ---@return integer
547: ---@param c Card
548: function Card.GetRealFieldID(c) end
549:
550: ---检查c是否在规则上当做code使用
551: ---@return boolean
552: ---@param c Card
553: ---@param code integer
554: function Card.IsOriginalCodeRule(c,code) end
555:
556: ---检查c的卡号是否是 code1[, 或者为 code2...]
557: ---@return boolean
558: ---@param c Card
559: ---@param code1 integer
560: ---@param code2? integer
561: ---@param ...? integer
562: function Card.IsCode(c,code1,code2,...) end
563:
564: ---检查c是否属于类型type
565: ---@return boolean
566: ---@param c Card
567: ---@param type integer
568: function Card.IsType(c,type) end
569:
570: ---检查c用作融合素材时是否属于类型type(与IsType的区别在于对于魔陷区的怪兽卡,用其原本类型作判断)
571: ---@return boolean
572: ---@param c Card
573: ---@param type integer
574: function Card.IsFusionType(c,type) end
575:
576: ---检查c用作同调素材时是否属于类型type(与IsType的区别在于对于魔陷区的怪兽卡,用其原本类型作判断)
577: ---@return boolean
578: ---@param c Card
579: ---@param type integer
580: function Card.IsSynchroType(c,type) end
581:
582: ---检查c用作XYZ素材时是否属于类型type(与IsType的区别在于对于魔陷区的怪兽卡,用其原本类型作判断)
583: ---@return boolean
584: ---@param c Card
585: ---@param type integer
586: function Card.IsXyzType(c,type) end
587:
588: ---检查c用作连接素材时是否属于类型type(与IsType的区别在于对于魔陷区的怪兽卡,用其原本类型作判断)
589: ---@return boolean
590: ---@param c Card
591: ---@param type integer
592: function Card.IsLinkType(c,type) end
593:
594: ---检查c是否是等级 level1[, 或者为 level2...]
595: ---@return boolean
596: ---@param c Card
597: ---@param level1 integer
598: ---@param level2? integer
599: ---@param ...? integer
600: function Card.IsLevel(c,level1,level2,...) end
601:
602: ---检查c是否是阶级 rank1[, 或者为 rank2...]
603: ---@return boolean
604: ---@param c Card
605: ---@param rank1 integer
606: ---@param rank2? integer
607: ---@param ...? integer
608: function Card.IsRank(c,rank1,rank2,...) end
609:
610: ---检查c的连接标记数量是否是 link1[, 或者为 link2...]
611: ---@return boolean
612: ---@param c Card
613: ---@param link1 integer
614: ---@param link2? integer
615: ---@param ...? integer
616: function Card.IsLink(c,link1,link2,...) end
617:
618: ---检查c的攻击力是否是 atk1[, 或者为 atk2...],如果c不是怪兽卡,或者不在 LOCATION_MZONE 则都返回false
619: ---@return boolean
620: ---@param c Card
621: ---@param atk1 integer
622: ---@param atk2? integer
623: ---@param ...? integer
624: function Card.IsAttack(c,atk1,atk2,...) end
625:
626: ---检查c的守备力是否是 def1[, 或者为 def2...],如果c不是怪兽卡,或者不在 LOCATION_MZONE 则都返回false
627: ---@return boolean
628: ---@param c Card
629: ---@param def integer
630: ---@param atk2? integer
631: ---@param ...? integer
632: function Card.IsDefense(c,def,atk2,...) end
633:
634: ---检查c是否属于种族race
635: ---@return boolean
636: ---@param c Card
637: ---@param race integer
638: function Card.IsRace(c,race) end
639:
640: ---检查c[由player连接召唤时]用作连接素材时是否属于种族race
641: ---@return boolean
642: ---@param c Card
643: ---@param race integer
644: ---@param player? integer
645: function Card.IsLinkRace(c,race,player) end
646:
647: ---检查c是否属于属性attribute
648: ---@return boolean
649: ---@param c Card
650: ---@param attribute integer
651: function Card.IsAttribute(c,attribute) end
652:
653: ---检查c[由player融合召唤时]用作融合素材是否属于属性attribute
654: ---@return boolean
655: ---@param c Card
656: ---@param attribute integer
657: ---@param player? integer
658: function Card.IsFusionAttribute(c,attribute,player) end
659:
660: ---检查c[由player连接召唤时]用作连接素材是否属于属性attribute
661: ---@return boolean
662: ---@param c Card
663: ---@param attribute integer
664: ---@param player? integer
665: function Card.IsLinkAttribute(c,attribute,player) end
666:
667: ---检查c是否有attribute以外的属性
668: ---(如暗黑神鸟同时具有暗和风属性,not IsAttribute(暗)是false,但IsNonAttribute(暗)是true)
669: ---@return boolean
670: ---@param c Card
671: ---@param attribute integer
672: function Card.IsNonAttribute(c,attribute) end
673:
674: ---检查c原本是否为融合·同调·XYZ·连接怪兽。这个函数只检查类型,不关心被检查的怪兽的现状。
675: ---@return boolean
676: ---@param c Card
677: function Card.IsExtraDeckMonster(c) end
678:
679: ---检查c是否包含原因reason
680: ---@return boolean
681: ---@param c Card
682: ---@param reason integer
683: function Card.IsReason(c,reason) end
684:
685: ---检查c的召唤类型是否是sumtype
686: ---@return boolean
687: ---@param c Card
688: ---@param sumtype integer
689: function Card.IsSummonType(c,sumtype) end
690:
691: ---检查c召唤·特殊召唤的位置是否为loc
692: ---@return boolean
693: ---@param c Card
694: ---@param loc integer
695: function Card.IsSummonLocation(c,loc) end
696:
697: ---检查将c召唤·特殊召唤的玩家是否为player
698: ---@return boolean
699: ---@param c Card
700: ---@param player integer
701: function Card.IsSummonPlayer(c,player) end
702:
703: ---检查c是否包含某个状态码
704: ---@return boolean
705: ---@param c Card
706: ---@param status integer
707: function Card.IsStatus(c,status) end
708:
709: ---检查c是否可以当成非调整来使用
710: ---@return boolean
711: ---@param c Card
712: function Card.IsNotTuner(c) end
713:
714: ---检查c是否是调整怪兽。
715: ---除了检查TYPE_TUNER以外,还会检查其身上所有能让其变为调整怪兽的效果。
716: ---@return boolean
717: ---@param c Card
718: function Card.IsTuner(c) end
719:
720: ---给c设置或者取消状态码
721: ---除非妳清楚的了解每个状态码的含意,否则不要轻易使用此函数
722: ---@param c Card
723: ---@param state integer
724: ---@param enable boolean
725: function Card.SetStatus(c,state,enable) end
726:
727: ---检查c属否处于再召唤状态
728: ---@return boolean
729: ---@param c Card
730: function Card.IsDualState(c) end
731:
732: ---把c设置成再召唤状态
733: ---@param c Card
734: function Card.EnableDualState(c) end
735:
736: ---设置c的回合计数器(光之护封剑等)
737: ---@param c Card
738: ---@param counter integer
739: function Card.SetTurnCounter(c,counter) end
740:
741: ---返回c的回合计数器
742: ---@return integer
743: ---@param c Card
744: function Card.GetTurnCounter(c) end
745:
746: ---把g中的所有卡作为c的素材(上级召唤,特殊召唤)
747: ---@param c Card
748: ---@param g Group|nil
749: function Card.SetMaterial(c,g) end
750:
751: ---返回c出场使用的素材
752: ---@return Group
753: ---@param c Card
754: function Card.GetMaterial(c) end
755:
756: ---返回c出场使用的素材数量
757: ---@return integer
758: ---@param c Card
759: function Card.GetMaterialCount(c) end
760:
761: ---返回c当前装备着的卡片组
762: ---@return Group
763: ---@param c Card
764: function Card.GetEquipGroup(c) end
765:
766: ---返回c当前装备着的卡片数量
767: ---@return integer
768: ---@param c Card
769: function Card.GetEquipCount(c) end
770:
771: ---返回c当前的装备对象
772: ---@return Card
773: ---@param c Card
774: function Card.GetEquipTarget(c) end
775:
776: ---返回c之前的装备对象
777: ---@return Card
778: ---@param c Card
779: function Card.GetPreviousEquipTarget(c) end
780:
781: ---检查c2是否是c1的正确的装备对象
782: ---##由EFFECT_EQUIP_LIMIT效果或同盟状态确定
783: ---@return boolean
784: ---@param c1 Card
785: ---@param c2 Card
786: function Card.CheckEquipTarget(c1,c2) end
787:
788: ---检查ec是否为c的有效同盟装备对象。会检查EFFECT_UNION_LIMIT影响和新旧同盟影响。
789: ---@return Card
790: ---@param c Card
791: ---@param ec Card
792: function Card.CheckUnionTarget(c,ec) end
793:
794: ---返回c当前装备的同盟卡数量、旧同盟卡数量
795: ---@return integer
796: ---@return integer
797: ---@param c Card
798: function Card.GetUnionCount(c) end
799:
800: ---返回c当前叠放着的卡片组
801: ---@return Group
802: ---@param c Card
803: function Card.GetOverlayGroup(c) end
804:
805: ---返回c当前叠放着的卡片数量
806: ---@return integer
807: ---@param c Card
808: function Card.GetOverlayCount(c) end
809:
810: ---返回以c为XYZ素材的卡
811: ---@return Card
812: ---@param c Card
813: function Card.GetOverlayTarget(c) end
814:
815: ---检查玩家player能否以reason为原因,至少移除c叠放的count张卡
816: ---@return boolean
817: ---@param c Card
818: ---@param player integer
819: ---@param count integer
820: ---@param reason integer
821: function Card.CheckRemoveOverlayCard(c,player,count,reason) end
822:
823: ---以reason为原因,让玩家player移除c叠放的min-max张卡,返回值表示移除的数量
824: ---@return integer
825: ---@param c Card
826: ---@param player integer
827: ---@param min integer
828: ---@param max integer
829: ---@param reason integer
830: function Card.RemoveOverlayCard(c,player,min,max,reason) end
831:
832: ---返回c本回合攻击过的卡片组
833: ---@return Group
834: ---@param c Card
835: function Card.GetAttackedGroup(c) end
836:
837: ---返回c本回合攻击过的卡片数量
838: ---@return integer
839: ---@param c Card
840: function Card.GetAttackedGroupCount(c) end
841:
842: ---返回c本回合攻击过的次数
843: ---注:如果此值与上一个函数的返回值不同,那么说明此卡本回合进行过直接攻击
844: ---@return integer
845: ---@param c Card
846: function Card.GetAttackedCount(c) end
847:
848: ---返回与c本回合进行过战斗的卡片组
849: ---进行过战斗指发生过伤害的计算,用于剑斗兽等卡的判定
850: ---@return Group
851: ---@param c Card
852: function Card.GetBattledGroup(c) end
853:
854: ---返回与c本回合进行过战斗的的卡片数量
855: ---@return integer
856: ---@param c Card
857: function Card.GetBattledGroupCount(c) end
858:
859: ---返回c本回合攻击宣言的次数
860: ---注:攻击被无效不会被计入攻击过的次数,但是会计入攻击宣言的次数
861: ---@return integer
862: ---@param c Card
863: function Card.GetAttackAnnouncedCount(c) end
864:
865: ---检查c是否直接攻击过
866: ---@return boolean
867: ---@param c Card
868: function Card.IsDirectAttacked(c) end
869:
870: ---把c2作为c1的永续对象
871: ---c1和c2的联系会在c1或c2任意一卡离场或变成里侧表示时reset
872: ---@param c1 Card
873: ---@param c2 Card
874: function Card.SetCardTarget(c1,c2) end
875:
876: ---返回c当前所有的永续对象
877: ---@return Group
878: ---@param c Card
879: function Card.GetCardTarget(c) end
880:
881: ---返回c当前第一个永续对象,没有则返回 nil
882: ---@return Card
883: ---@param c Card
884: function Card.GetFirstCardTarget(c) end
885:
886: ---返回c当前的永续对象的数量
887: ---@return integer
888: ---@param c Card
889: function Card.GetCardTargetCount(c) end
890:
891: ---检查c2是否取c1为永续对象
892: ---@return boolean
893: ---@param c1 Card
894: ---@param c2 Card
895: function Card.IsHasCardTarget(c1,c2) end
896:
897: ---取消c2为c1的永续对象
898: ---@param c1 Card
899: ---@param c2 Card
900: function Card.CancelCardTarget(c1,c2) end
901:
902: ---返回取c作为永续对象的所有卡
903: ---@return Group
904: ---@param c Card
905: function Card.GetOwnerTarget(c) end
906:
907: ---返回取c作为永续对象的卡的数量
908: ---@return integer
909: ---@param c Card
910: function Card.GetOwnerTargetCount(c) end
911:
912: ---返回c的“卡片发动”的效果,即类型为EFFECT_TYPE_ACTIVATE的效果
913: ---仅对魔法和陷阱有效
914: ---@return Effect
915: ---@return ...? Effect
916: ---@param c Card
917: function Card.GetActivateEffect(c) end
918:
919: ---返回c的可以发动时机正确的“卡的发动”的效果,neglect_con=true则无视发动条件,neglect_cost=true则无视发动cost
920: ---copy_info=false或者自由时点的效果则只返回这个效果 e
921: ---否则还返回这个效果的触发时点的信息 e,eg,ep,ev,re,r,rp
922: ---@return Effect
923: ---@return Group|nil
924: ---@return integer|nil
925: ---@return integer|nil
926: ---@return Effect|nil
927: ---@return integer|nil
928: ---@return integer|nil
929: ---@param c Card
930: ---@param neglect_con boolean
931: ---@param neglect_cost boolean
932: ---@param copy_info boolean
933: function Card.CheckActivateEffect(c,neglect_con,neglect_cost,copy_info) end
934:
935: ---如果卡片 c 受到同调素材限制效果 EFFECT_TUNER_MATERIAL_LIMIT 影响,则返回 Effect e,function target,int value,int min,int max ;否则返回nil
936: ---@return nil|Effect
937: ---@return function|nil
938: ---@return integer|nil
939: ---@return integer|nil
940: ---@return integer|nil
941: ---@param c Card
942: function Card.GetTunerLimit(c) end
943:
944: ---如果卡片 c 受到手卡同调效果 EFFECT_HAND_SYNCHRO 影响,则返回 Effect e,function target,int min,int max ;否则返回nil
945: ---@return nil|Effect
946: ---@return function|nil
947: ---@return integer|nil
948: ---@return integer|nil
949: ---@param c Card
950: function Card.GetHandSynchro(c) end
951:
952: ---把效果e注册给c,返回效果的全局id,并设置e的Handler为c
953: ---默认情况下注册时如果c带有免疫e的效果那么注册会失败
954: ---如果forced为true则不会检查c对e的免疫效果
955: ---@return integer
956: ---@param c Card
957: ---@param e Effect
958: ---@param forced? boolean default: false
959: function Card.RegisterEffect(c,e,forced) end
960:
961: ---检查c是否受到效果种类是code的效果的影响
962: ---没有则返回nil
963: ---有则返回那些效果
964: ---@return Effect
965: ---@return ...? Effect
966: ---@param c Card
967: ---@param code integer
968: ---@param player? integer
969: function Card.IsHasEffect(c,code,player) end
970:
971: ---以重置类型为reset_type、重置种类为reset_code手动重置c受到的效果的影响
972: ---reset_type只能是以下类型,对应的重置种类为
973: ---RESET_EVENT 发生事件重置 reset_code为事件
974: ---RESET_PHASE 阶段结束重置 reset_code为阶段
975: ---RESET_CODE 重置指定code的效果 reset_code为效果的种类code,只能重置EFFECT_TYPE_SINGLE的永续型效果
976: ---RESET_COPY 重置复制的效果 reset_code为copy_id
977: ---RESET_CARD 重置卡片的效果 reset_code为效果owner的卡号
978: ---@param c Card
979: ---@param reset_code integer
980: ---@param reset_type integer
981: function Card.ResetEffect(c,reset_code,reset_type) end
982:
983: ---返回c受到影响的种类是code的效果的数量
984: ---@return integer
985: ---@param c Card
986: ---@param code integer
987: function Card.GetEffectCount(c,code) end
988:
989: ---为c注册一个标识用效果
990: ---注:注册给卡的标识用效果不会用于系统,
991: ---即使code与内置效果code重合也不会影响,
992: ---并且类型总是EFFECT_TYPE_SINGLE,reset方法,property和一般的效果相同,
993: ---并且不会无效化,不受卡的免疫效果影响
994: ---@return Effect
995: ---@param c Card
996: ---@param code integer
997: ---@param reset_flag integer
998: ---@param property integer
999: ---@param reset_count integer
1000: ---@param label? integer
1001: ---@param desc? integer
1002: function Card.RegisterFlagEffect(c,code,reset_flag,property,reset_count,label,desc) end
1003:
1004: ---返回c的种类是code的标识效果的数量
1005: ---@return integer
1006: ---@param c Card
1007: ---@param code integer
1008: function Card.GetFlagEffect(c,code) end
1009:
1010: ---手动清除c的种类是code的标识效果
1011: ---@param c Card
1012: ---@param code integer
1013: function Card.ResetFlagEffect(c,code) end
1014:
1015: ---返回c是否存在种类为code的标识效果,若有则设置第一个的Label属性为label
1016: ---@return boolean
1017: ---@param c Card
1018: ---@param code integer
1019: ---@param label integer
1020: function Card.SetFlagEffectLabel(c,code,label) end
1021:
1022: ---返回c的种类为code的每个标识效果的Label,没有此效果则返回nil
1023: ---@return integer
1024: ---@return ...? integer
1025: ---@param c Card
1026: ---@param code integer
1027: function Card.GetFlagEffectLabel(c,code) end
1028:
1029: ---为c1建立与c2的联系,此联系仅会由于c1发生RESET_EVENT的事件reset
1030: ---@param c1 Card
1031: ---@param c2 Card
1032: ---@param reset_flag integer
1033: function Card.CreateRelation(c1,c2,reset_flag) end
1034:
1035: ---手动释放c1对于c2的联系
1036: ---@param c1 Card
1037: ---@param c2 Card
1038: function Card.ReleaseRelation(c1,c2) end
1039:
1040: ---为卡片c和效果e建立联系
1041: ---@param c Card
1042: ---@param e Effect
1043: function Card.CreateEffectRelation(c,e) end
1044:
1045: ---手动释放c与效果e的联系
1046: ---@param c Card
1047: ---@param e Effect
1048: function Card.ReleaseEffectRelation(c,e) end
1049:
1050: ---清空c所有联系的效果
1051: ---@param c Card
1052: function Card.ClearEffectRelation(c) end
1053:
1054: ---检查c是否和效果e有联系
1055: ---注:每次发动进入连锁的效果时,发动效果的卡,以及发动效果时指定的对象
1056: ---(用Duel.SetTargetCard或者Duel.SelectTarget指定的,包括取对象和不取对象)
1057: ---会自动与那个效果建立联系,一旦离场,联系会重置
1058: ---@return boolean
1059: ---@param c Card
1060: ---@param e Effect
1061: function Card.IsRelateToEffect(c,e) end
1062:
1063: ---检查c是否和连锁chainc有联系
1064: ---注:每次发动进入连锁的效果时,发动效果的卡,以及发动效果时指定的对象
1065: ---(用Duel.SetTargetCard或者Duel.SelectTarget指定的,包括取对象和不取对象)
1066: ---会自动与那个效果建立联系,一旦离场,联系会重置
1067: ---@return boolean
1068: ---@param c Card
1069: ---@param chainc? integer default: 0
1070: function Card.IsRelateToChain(c,chainc) end
1071:
1072: ---检查c1是否和c2有联系
1073: ---@return boolean
1074: ---@param c1 Card
1075: ---@param c2 Card
1076: function Card.IsRelateToCard(c1,c2) end
1077:
1078: ---检查c是否和本次战斗关联
1079: ---注:此效果通常用于伤害计算后伤害阶段结束前,用于检查战斗的卡是否离场过
1080: ---@return boolean
1081: ---@param c Card
1082: function Card.IsRelateToBattle(c) end
1083:
1084: ---为c添加卡号是code的卡的可复制的效果,并且添加额外的reset条件
1085: ---返回值是表示复制效果的代号id
1086: ---@return integer
1087: ---@param c Card
1088: ---@param code integer
1089: ---@param reset_flag integer
1090: ---@param reset_count? integer default: 1
1091: function Card.CopyEffect(c,code,reset_flag,reset_count) end
1092:
1093: ---把c的效果替换为卡号是code的卡的效果,并且添加额外的reset条件
1094: ---返回值是表示替换效果的代号id
1095: ---@return integer
1096: ---@param c Card
1097: ---@param code integer
1098: ---@param reset_flag integer
1099: ---@param reset_count? integer default: 1
1100: function Card.ReplaceEffect(c,code,reset_flag,reset_count) end
1101:
1102: ---为c添加苏生限制
1103: ---##实际上是不可复制、不会被无效的EFFECT_UNSUMMONABLE_CARD和EFFECT_REVIVE_LIMIT效果
1104: ---@param c Card
1105: function Card.EnableReviveLimit(c) end
1106:
1107: ---使c完成正规的召唤手续
1108: ---##此函数也可通过 c:SetStatus(STATUS_PROC_COMPLETE,true)实现
1109: ---@param c Card
1110: function Card.CompleteProcedure(c) end
1111:
1112: ---检查c是否处于无效状态
1113: ---@return boolean
1114: ---@param c Card
1115: function Card.IsDisabled(c) end
1116:
1117: ---检查c是否是可被[效果 e]破坏的
1118: ---@return boolean
1119: ---@param c Card
1120: ---@param e? Effect
1121: function Card.IsDestructable(c,e) end
1122:
1123: ---检查c是否是可通常召唤的卡
1124: ---@return boolean
1125: ---@param c Card
1126: function Card.IsSummonableCard(c) end
1127:
1128: ---检查c是否能以正规方法特殊召唤。
1129: ---c必须有可特殊召唤的方式。
1130: ---@return boolean
1131: ---@param c Card
1132: function Card.IsSpecialSummonableCard(c) end
1133:
1134: ---检查c是否是可[用 sum_type 方式]融合召唤的卡
1135: ---@return boolean
1136: ---@param c Card
1137: ---@param sum_type? integer
1138: function Card.IsFusionSummonableCard(c,sum_type) end
1139:
1140: ---检查是否可以对c[用 sum_type 方式]进行特殊召唤手续
1141: ---@return boolean
1142: ---@param c Card
1143: ---@param sum_type? integer
1144: function Card.IsSpecialSummonable(c,sum_type) end
1145:
1146: ---检查是否可以以tuner作为调整,场上的卡[或mg]为同调素材对c进行同调召唤手续
1147: ---如果tuner是nil,此函数与Card.IsSpecialSummonable作用相同
1148: ---@return boolean
1149: ---@param c Card
1150: ---@param tuner Card|nil
1151: ---@param mg? Group
1152: function Card.IsSynchroSummonable(c,tuner,mg) end
1153:
1154: ---检查是否可以在场上的卡[或mg][中选出 min-max 个XYZ素材]对c进行XYZ召唤手续
1155: ---如果mg为nil,此函数与 c:IsSpecialSummonable(SUMMON_TYPE_XYZ)作用相同
1156: ---@return boolean
1157: ---@param c Card
1158: ---@param mg Group|nil
1159: ---@param min? integer default: 0
1160: ---@param max? integer default: 0
1161: function Card.IsXyzSummonable(c,mg,min,max) end
1162:
1163: ---检查是否可以在场上的卡[或mg][中选出 min-max 个连接素材]对c进行连接召唤手续
1164: ---如果mg为nil,此函数与 c:IsSpecialSummonable(SUMMON_TYPE_LINK)作用相同
1165: ---@return boolean
1166: ---@param c Card
1167: ---@param mg Group|nil
1168: ---@param min? integer default: 0
1169: ---@param max? integer default: 0
1170: function Card.IsLinkSummonable(c,mg,min,max) end
1171:
1172: ---检查c是否可以进行通常召唤(不包含通常召唤的set),ignore_count=true则不检查召唤次数限制
1173: ---e~=nil则检查c是否可以以效果e进行通常召唤,min表示至少需要的祭品数(用于区分妥协召唤与上级召唤),zone 表示必须要召唤到的区域
1174: ---@return boolean
1175: ---@param c Card
1176: ---@param ignore_count boolean
1177: ---@param e Effect|nil
1178: ---@param min? integer default: 0
1179: ---@param zone? integer default: 0x1f
1180: function Card.IsSummonable(c,ignore_count,e,min,zone) end
1181:
1182: ---检查c是否可进行通常召唤的set,ignore_count=true则不检查召唤次数限制
1183: ---e~=nil则检查c是否可以以效果e进行通常召唤的set,min表示至少需要的祭品数(用于区分妥协召唤set与上级召唤set),zone 表示必须要放置到的区域
1184: ---@return boolean
1185: ---@param c Card
1186: ---@param ignore_count boolean
1187: ---@param e Effect|nil
1188: ---@param min? integer default: 0
1189: ---@param zone? integer default: 0x1f
1190: function Card.IsMSetable(c,ignore_count,e,min,zone) end
1191:
1192: ---检查c是否可以set到魔法陷阱区,ignore_field=true则无视魔陷区格子是否能使用的限制
1193: ---@return boolean
1194: ---@param c Card
1195: ---@param ignore_field? boolean default: false
1196: function Card.IsSSetable(c,ignore_field) end
1197:
1198: ---检查c是否可以被玩家sumplayer用效果e[以sumtype方式和sumpos表示形式]特殊召唤[到玩家 toplayer 的区域zone]
1199: ---如果nocheck是true则不检查c的召唤条件,如果nolimit是true则不检查c的苏生限制
1200: ---@return boolean
1201: ---@param c Card
1202: ---@param e Effect
1203: ---@param sumtype integer
1204: ---@param sumplayer integer
1205: ---@param nocheck boolean
1206: ---@param nolimit boolean
1207: ---@param sumpos? integer default: POS_FACEUP
1208: ---@param toplayer? integer default: sumplayer
1209: ---@param zone? integer default: 0xff
1210: function Card.IsCanBeSpecialSummoned(c,e,sumtype,sumplayer,nocheck,nolimit,sumpos,toplayer,zone) end
1211:
1212: ---检查c是否可以送去手卡
1213: ---注:仅当卡片或者玩家受到“不能加入手卡”的效果的影响时(如雷王)此函数才返回false
1214: ---##以下几个函数类似
1215: ---@return boolean
1216: ---@param c Card
1217: function Card.IsAbleToHand(c) end
1218:
1219: ---检查c是否可以送去卡组
1220: ---@return boolean
1221: ---@param c Card
1222: function Card.IsAbleToDeck(c) end
1223:
1224: ---检查c是否可以送去额外卡组
1225: ---对于非融合、同调等额外怪兽或者非灵摆怪兽此函数均返回false
1226: ---@return boolean
1227: ---@param c Card
1228: function Card.IsAbleToExtra(c) end
1229:
1230: ---检查c是否可以送去墓地
1231: ---@return boolean
1232: ---@param c Card
1233: function Card.IsAbleToGrave(c) end
1234:
1235: ---检查c是否可以被玩家player除外
1236: ---@return boolean
1237: ---@param c Card
1238: ---@param player? integer
1239: ---@param pos? integer
1240: ---@param reason? integer
1241: function Card.IsAbleToRemove(c,player,pos,reason) end
1242:
1243: ---检查c是否可以作为cost送去手卡
1244: ---注:此函数会在Card.IsAbleToHand的基础上追加检测c的实际目的地
1245: ---当c送往手卡会被送去其它地方时(如缩退回路适用中,或者c是融合、同调 等额外怪兽的一种),此函数返回false
1246: ---##以下几个函数类似
1247: ---@return boolean
1248: ---@param c Card
1249: function Card.IsAbleToHandAsCost(c) end
1250:
1251: ---检查c是否可以作为cost送去卡组
1252: ---@return boolean
1253: ---@param c Card
1254: function Card.IsAbleToDeckAsCost(c) end
1255:
1256: ---检查c是否可以作为cost送去额外卡组,主卡组的灵摆卡会返回false
1257: ---@return boolean
1258: ---@param c Card
1259: function Card.IsAbleToExtraAsCost(c) end
1260:
1261: ---检查c是否可以作为cost送去卡组或额外卡组(用于新宇侠、剑斗兽融合怪兽的召唤手续检测)等价于 (c:IsAbleToDeckAsCost() or c:IsAbleToExtraAsCost())
1262: ---@return boolean
1263: ---@param c Card
1264: function Card.IsAbleToDeckOrExtraAsCost(c) end
1265:
1266: ---检查c是否可以作为cost送去墓地
1267: ---@return boolean
1268: ---@param c Card
1269: function Card.IsAbleToGraveAsCost(c) end
1270:
1271: ---检查c是否可以作为cost除外
1272: ---@return boolean
1273: ---@param c Card
1274: function Card.IsAbleToRemoveAsCost(c) end
1275:
1276: ---检查c是否可以被以原因reason解放(非上级召唤用)
1277: ---@return boolean
1278: ---@param c Card
1279: ---@param reason? integer default: REASON_COST
1280: function Card.IsReleasable(c,reason) end
1281:
1282: ---检查c是否可以被效果解放
1283: ---@return boolean
1284: ---@param c Card
1285: function Card.IsReleasableByEffect(c) end
1286:
1287: ---检查c是否可以以reason原因丢弃
1288: ---注:此函数仅用于检测,
1289: ---以REASON_DISCARD作为原因把一张手卡送墓并不会导致那张卡不能丢弃
1290: ---@return boolean
1291: ---@param c Card
1292: ---@param reason? integer default: REASON_COST
1293: function Card.IsDiscardable(c,reason) end
1294:
1295: ---检查c是否可以攻击
1296: ---@return boolean
1297: ---@param c Card
1298: function Card.IsAttackable(c) end
1299:
1300: ---检查c是否可以连续攻击,c的攻击宣言次数>=ac则返回false
1301: ---monsteronly = true 则表示只能对怪兽攻击
1302: ---注:当c因为闪光之双剑等效果进行过多次攻击之后此函数返回false
1303: ---@return boolean
1304: ---@param c Card
1305: ---@param ac? integer
1306: ---@param monsteronly? boolean
1307: function Card.IsChainAttackable(c,ac,monsteronly) end
1308:
1309: ---检查c是否是表侧表示
1310: ---@return boolean
1311: ---@param c Card
1312: function Card.IsFaceup(c) end
1313:
1314: ---检查c是否是表侧表示,在手卡墓地主卡组等处始终返回true
1315: ---@return boolean
1316: ---@param c Card
1317: function Card.IsFaceupEx(c) end
1318:
1319: ---检查c是否是攻击表示
1320: ---@return boolean
1321: ---@param c Card
1322: function Card.IsAttackPos(c) end
1323:
1324: ---检查c是否是里侧表示
1325: ---@return boolean
1326: ---@param c Card
1327: function Card.IsFacedown(c) end
1328:
1329: ---检查c是否是守备表示
1330: ---@return boolean
1331: ---@param c Card
1332: function Card.IsDefensePos(c) end
1333:
1334: ---检查c是否是表示形式pos
1335: ---@return boolean
1336: ---@param c Card
1337: ---@param pos integer
1338: function Card.IsPosition(c,pos) end
1339:
1340: ---检查c位置变化之前是否是表示形式pos
1341: ---@return boolean
1342: ---@param c Card
1343: ---@param pos integer
1344: function Card.IsPreviousPosition(c,pos) end
1345:
1346: ---检查c的当前控制着是否是controler
1347: ---@return boolean
1348: ---@param c Card
1349: ---@param controler integer
1350: function Card.IsControler(c,controler) end
1351:
1352: ---检查c的上一个控制者是否为player
1353: ---@return boolean
1354: ---@param c Card
1355: ---@param player integer
1356: function Card.IsPreviousControler(c,player) end
1357:
1358: ---检查c是否在场
1359: ---注:当怪兽召唤,反转召唤,特殊召唤时召唤成功之前,此函数返回false
1360: ---@return boolean
1361: ---@param c Card
1362: function Card.IsOnField(c) end
1363:
1364: ---检查c当前位置是否是location
1365: ---注:当怪兽召唤,反转召唤,特殊召唤时召唤成功之前,
1366: ---并且location=LOCATION_MZONE时,此函数返回false
1367: ---@return boolean
1368: ---@param c Card
1369: ---@param location integer
1370: function Card.IsLocation(c,location) end
1371:
1372: ---检查c之前的位置是否是location
1373: ---@return boolean
1374: ---@param c Card
1375: ---@param location integer
1376: function Card.IsPreviousLocation(c,location) end
1377:
1378: ---检查c是否是等级level以下(至少为1)
1379: ---@return boolean
1380: ---@param c Card
1381: ---@param level integer
1382: function Card.IsLevelBelow(c,level) end
1383:
1384: ---检查c是否是等级level以上
1385: ---@return boolean
1386: ---@param c Card
1387: ---@param level integer
1388: function Card.IsLevelAbove(c,level) end
1389:
1390: ---检查c是否是阶级rank以下(至少为1)
1391: ---@return boolean
1392: ---@param c Card
1393: ---@param rank integer
1394: function Card.IsRankBelow(c,rank) end
1395:
1396: ---检查c是否是阶级rank以上
1397: ---@return boolean
1398: ---@param c Card
1399: ---@param rank integer
1400: function Card.IsRankAbove(c,rank) end
1401:
1402: ---检查c是否连接标记数量是link以下(至少为1)
1403: ---@return boolean
1404: ---@param c Card
1405: ---@param link integer
1406: function Card.IsLinkBelow(c,link) end
1407:
1408: ---检查c是否连接标记数量是link以上
1409: ---@return boolean
1410: ---@param c Card
1411: ---@param link integer
1412: function Card.IsLinkAbove(c,link) end
1413:
1414: ---检查c是否是攻击力atk以下(至少为0)
1415: ---@return boolean
1416: ---@param c Card
1417: ---@param atk integer
1418: function Card.IsAttackBelow(c,atk) end
1419:
1420: ---检查c是否是攻击力atk以上
1421: ---@return boolean
1422: ---@param c Card
1423: ---@param atk integer
1424: function Card.IsAttackAbove(c,atk) end
1425:
1426: ---检查c是否是守备力def以下(至少为0)
1427: ---@return boolean
1428: ---@param c Card
1429: ---@param def integer
1430: function Card.IsDefenseBelow(c,def) end
1431:
1432: ---检查c是否是守备力def以上
1433: ---@return boolean
1434: ---@param c Card
1435: ---@param def integer
1436: function Card.IsDefenseAbove(c,def) end
1437:
1438: ---检查c是否处于公开状态
1439: ---@return boolean
1440: ---@param c Card
1441: function Card.IsPublic(c) end
1442:
1443: ---检查c是否处于被宣言禁止状态
1444: ---@return boolean
1445: ---@param c Card
1446: function Card.IsForbidden(c) end
1447:
1448: ---检查c是否可以改变控制权
1449: ---注:仅当卡收到了“不能改变控制权”的效果的影响时,此函数返回false
1450: ---@return boolean
1451: ---@param c Card
1452: function Card.IsAbleToChangeControler(c) end
1453:
1454: ---检查c的控制权是否可以改变。
1455: ---ignore_mzone=true 会忽视转移控制权后的玩家场上是否有空格位, zone 表示必须要使用的位置
1456: ---@return boolean
1457: ---@param c Card
1458: ---@param ignore_mzone? boolean default: false
1459: ---@param zone? integer default: 0xff
1460: function Card.IsControlerCanBeChanged(c,ignore_mzone,zone) end
1461:
1462: ---为c放置count个countertype类型的指示物,singly为true表示逐个添加至上限为止
1463: ---@return boolean
1464: ---@param c Card
1465: ---@param countertype integer
1466: ---@param count integer
1467: ---@param singly? integer default: false
1468: function Card.AddCounter(c,countertype,count,singly) end
1469:
1470: ---让玩家player以原因reason移除c上的count个countertype类型的指示物, countertype=0 则清除c的所有指示物
1471: ---@param c Card
1472: ---@param player integer
1473: ---@param countertype integer
1474: ---@param count integer
1475: ---@param reason integer
1476: function Card.RemoveCounter(c,player,countertype,count,reason) end
1477:
1478: ---返回c上的countertype类型的指示物的数量, countertype=0 则返回c上所有类型的指示物数量之和
1479: ---@return integer
1480: ---@param c Card
1481: ---@param countertype integer
1482: function Card.GetCounter(c,countertype) end
1483:
1484: ---允许c[在位置location]放置那个需要“可以放置”才能放置的指示物countertype
1485: ---location的默认值与c的种类有关,灵摆怪兽需要指定能否在怪兽区域或灵摆区域放置指示物
1486: ---@param c Card
1487: ---@param countertype integer
1488: ---@param location? integer
1489: function Card.EnableCounterPermit(c,countertype,location) end
1490:
1491: ---设定c放置countertype类型指示物的上限
1492: ---@param c Card
1493: ---@param countertype integer
1494: ---@param count integer
1495: function Card.SetCounterLimit(c,countertype,count) end
1496:
1497: ---检查c是否可以用效果改变表示形式
1498: ---@return boolean
1499: ---@param c Card
1500: function Card.IsCanChangePosition(c) end
1501:
1502: ---检查c是否可以转成里侧表示
1503: ---@return boolean
1504: ---@param c Card
1505: function Card.IsCanTurnSet(c) end
1506:
1507: ---检查c是否可以[逐个(singly=true)在 location 区域]放置count个countertype类型的指示物
1508: ---@return boolean
1509: ---@param c Card
1510: ---@param countertype integer
1511: ---@param count integer
1512: ---@param singly? integer default: false
1513: ---@param location? integer
1514: function Card.IsCanAddCounter(c,countertype,count,singly,location) end
1515:
1516: ---检查玩家player是否可以以原因reason移除c上的count个countertype类型的指示物
1517: ---@return boolean
1518: ---@param c Card
1519: ---@param player integer
1520: ---@param countertype integer
1521: ---@param count integer
1522: ---@param reason integer
1523: function Card.IsCanRemoveCounter(c,player,countertype,count,reason) end
1524:
1525: ---检查c上是否可以放置countertype类型的指示物
1526: ---@return boolean
1527: ---@param c Card
1528: ---@param countertype integer
1529: function Card.IsCanHaveCounter(c,countertype) end
1530:
1531: ---检查c是否可以作为XYZ素材
1532: ---@return boolean
1533: ---@param c Card
1534: ---@param player? integer
1535: function Card.IsCanOverlay(c,player) end
1536:
1537: ---检查c是否可以成为[融合怪兽fc的]融合素材
1538: ---@return boolean
1539: ---@param c Card
1540: ---@param fc? Card
1541: function Card.IsCanBeFusionMaterial(c,fc) end
1542:
1543: ---检查c是否可以成为[以 tuner 为调整的同调怪兽sc的]同调素材
1544: ---@return boolean
1545: ---@param c Card
1546: ---@param sc? Card
1547: ---@param tuner? Card
1548: function Card.IsCanBeSynchroMaterial(c,sc,tuner) end
1549:
1550: ---检查c是否可以作为[仪式怪兽sc的]仪式素材,没有指定sc的场合,必须填nil
1551: ---@return boolean
1552: ---@param c Card
1553: ---@param sc Card|nil
1554: function Card.IsCanBeRitualMaterial(c,sc) end
1555:
1556: ---检查c是否可以成为[XYZ怪兽sc的]XYZ素材,没有指定sc的场合,必须填nil
1557: ---@return boolean
1558: ---@param c Card
1559: ---@param sc Card|nil
1560: function Card.IsCanBeXyzMaterial(c,sc) end
1561:
1562: ---检查c是否可以成为[连接怪兽sc的]连接素材,没有指定sc的场合,必须填nil
1563: ---@return boolean
1564: ---@param c Card
1565: ---@param sc Card|nil
1566: function Card.IsCanBeLinkMaterial(c,sc) end
1567:
1568: ---检查场上[或g]是否包含了c需要[必须包含gc在内]的一组融合素材
1569: ---##根据c的种类为EFFECT_FUSION_MATERIAL的效果的Condition函数检查
1570: ---@return boolean
1571: ---@param c Card
1572: ---@param g? Group|nil
1573: ---@param gc? Card|nil
1574: ---@param chkf? integer default: PLAYER_NONE
1575: ---@param not_material? boolean default: false
1576: function Card.CheckFusionMaterial(c,g,gc,chkf,not_material) end
1577:
1578: ---检查c能否代替融合怪兽fc的记述卡名的素材
1579: ---@return boolean
1580: ---@param c Card
1581: ---@param fc Card
1582: function Card.CheckFusionSubstitute(c,fc) end
1583:
1584: ---检查c是否免疫效果e(即不受效果e的影响)
1585: ---@return boolean
1586: ---@param c Card
1587: ---@param e Effect
1588: function Card.IsImmuneToEffect(c,e) end
1589:
1590: ---检查c的效果是否能被e无效。
1591: ---已经被无效的卡,或原本就没有效果的卡,或不受e影响的卡不能被无效。
1592: ---第三个参数可选,指示其是否为怪兽效果。
1593: ---@return boolean
1594: ---@param c Card
1595: ---@param e Effect
1596: ---@param isMonsterEffect? boolean
1597: function Card.IsCanBeDisabledByEffect(c,e,isMonsterEffect) end
1598:
1599: ---检查c是否可以成为效果[e的]对象
1600: ---@return boolean
1601: ---@param c Card
1602: ---@param e? Effect
1603: function Card.IsCanBeEffectTarget(c,e) end
1604:
1605: ---检查c1是否可以成为c2的攻击目标
1606: ---@return boolean
1607: ---@param c1 Card
1608: ---@param c2 Card
1609: function Card.IsCanBeBattleTarget(c1,c2) end
1610:
1611: ---为魔陷卡c添加怪兽数值,type 为怪兽类型,不能是没有等级的怪兽
1612: ---注:在数据库中有记录的数值视为原本数值
1613: ---@param c Card
1614: ---@param type integer
1615: ---@param attribute? integer
1616: ---@param race? integer
1617: ---@param level? integer
1618: ---@param atk? integer
1619: ---@param def? integer
1620: function Card.AddMonsterAttribute(c,type,attribute,race,level,atk,def) end
1621:
1622: ---取消送墓确定状态,cancel=false则重新设置送墓确定状态
1623: ---注:送墓确定状态指的是在场上发动的不留场的魔法和陷阱后,这些卡片的状态
1624: ---送墓确定状态中的卡无法返回手卡和卡组,并且连锁结束时送去墓地
1625: ---此函数的作用是取消此状态使其留场,用于光之护封剑和废铁稻草人等卡
1626: ---@param c Card
1627: ---@param cancel? boolean default: true
1628: function Card.CancelToGrave(c,cancel) end
1629:
1630: ---返回通常召唤c所需要的祭品的最小和最大数量
1631: ---@return integer
1632: ---@return integer
1633: ---@param c Card
1634: function Card.GetTributeRequirement(c) end
1635:
1636: ---返回与c进行战斗的卡,没有则返回nil
1637: ---@return Card
1638: ---@param c Card
1639: function Card.GetBattleTarget(c) end
1640:
1641: ---返回c可攻击的卡片组以及能否直接攻击
1642: ---@return Group
1643: ---@return boolean
1644: ---@param c Card
1645: function Card.GetAttackableTarget(c) end
1646:
1647: ---为c设置类型为type的卡片提示信息
1648: ---type只能为以下值,对应的value类型为
1649: ---CHINT_TURN 回合数
1650: ---CHINT_CARD 卡片id
1651: ---CHINT_RACE 种族
1652: ---CHINT_ATTRIBUTE 属性
1653: ---CHINT_NUMBER 数字
1654: ---CHINT_DESC 描述
1655: ---@param c Card
1656: ---@param type integer
1657: ---@param value integer
1658: function Card.SetHint(c,type,value) end
1659:
1660: ---设置c在卡组中正面表示(POS_FACEUP_DEFENSE)
1661: ---@param c Card
1662: function Card.ReverseInDeck(c) end
1663:
1664: ---设置c以unique_code只能在场上[或怪兽区域或魔陷区域,由unique_location决定]只能存在1张,function 的返回值类型必须是int
1665: ---s不为0会检查自己场上的唯一性,o不为0则检查对方场上的唯一性
1666: ---@param c Card
1667: ---@param s integer
1668: ---@param o integer
1669: ---@param unique_code function|integer
1670: ---@param unique_location? integer default: LOCATIOIN_ONFIELD
1671: function Card.SetUniqueOnField(c,s,o,unique_code,unique_location) end
1672:
1673: ---检查c在check_player场上的唯一性
1674: ---@return boolean
1675: ---@param c Card
1676: ---@param check_player integer
1677: ---@param check_location? integer default: LOCATION_ONFIELD
1678: ---@param icard? Card|nil
1679: function Card.CheckUniqueOnField(c,check_player,check_location,icard) end
1680:
1681: ---重置c受到的卡号为code1[, code2...]的卡片的效果的影响
1682: ---@param c Card
1683: ---@param code1? integer
1684: ---@param ...? any
1685: function Card.ResetNegateEffect(c,code1,...) end
1686:
1687: ---把c的assume_type的数值当作assume_value使用(基因组斗士)
1688: ---@param c Card
1689: ---@param assume_type integer
1690: ---@param assume_value integer
1691: function Card.AssumeProperty(c,assume_type,assume_value) end
1692:
1693: ---设置c一回合只能进行1次特殊召唤(灵兽,波动龙)
1694: ---相同的spsummon_code共用1个次数
1695: ---@param c Card
1696: ---@param spsummon_code integer
1697: function Card.SetSPSummonOnce(c,spsummon_code) end
1698:
1699: ---设置全局标记global_flag
1700: ---@param global_flag integer
1701: function Duel.EnableGlobalFlag(global_flag) end
1702:
1703: ---返回玩家player的当前LP
1704: ---@return integer
1705: ---@param player integer
1706: function Duel.GetLP(player) end
1707:
1708: ---设置玩家player的当前LP为lp
1709: ---@param player integer
1710: ---@param lp integer
1711: function Duel.SetLP(player,lp) end
1712:
1713: ---返回当前的回合玩家
1714: ---@return integer
1715: function Duel.GetTurnPlayer() end
1716:
1717: ---返回[player所经过的]当前的回合数
1718: ---@return integer
1719: ---@param player? integer
1720: function Duel.GetTurnCount(player) end
1721:
1722: ---返回玩家player每回合的规则抽卡数量
1723: ---@return integer
1724: ---@param player integer
1725: function Duel.GetDrawCount(player) end
1726:
1727: ---把效果e作为玩家player的效果注册给全局环境
1728: ---@param e Effect
1729: ---@param player integer
1730: function Duel.RegisterEffect(e,player) end
1731:
1732: ---为玩家player注册全局环境下的标识效果,并返回这个效果
1733: ---此效果总是影响玩家的(EFFECT_FLAG_PLAYER_TARGET)并且不会被无效化
1734: ---其余部分与Card.RegisterFlagEffect相同
1735: ---@return Effect
1736: ---@param player integer
1737: ---@param code integer
1738: ---@param reset_flag integer
1739: ---@param property integer
1740: ---@param reset_count integer default: 1
1741: ---@param label? integer
1742: function Duel.RegisterFlagEffect(player,code,reset_flag,property,reset_count,label) end
1743:
1744: ---返回玩家 player 的 code 标识效果的数量
1745: ---@return integer
1746: ---@param player integer
1747: ---@param code integer
1748: function Duel.GetFlagEffect(player,code) end
1749:
1750: ---手动reset玩家player的 code 标识效果
1751: ---@param player integer
1752: ---@param code integer
1753: function Duel.ResetFlagEffect(player,code) end
1754:
1755: ---返回player是否存在种类为code的标识效果,若有则设置第一个的Label属性为label
1756: ---@return boolean
1757: ---@param player integer
1758: ---@param code integer
1759: ---@param label integer
1760: function Duel.SetFlagEffectLabel(player,code,label) end
1761:
1762: ---返回玩家player的种类为code的每个标识效果的Label,没有此效果则返回nil
1763: ---@return integer
1764: ---@return ...? integer
1765: ---@param player integer
1766: ---@param code integer
1767: function Duel.GetFlagEffectLabel(player,code) end
1768:
1769: ---以reason原因破坏targets去dest,返回值是实际被破坏的数量
1770: ---如果reason包含REASON_RULE,则破坏事件将不会检查卡片是否免疫效果,
1771: ---不会触发代破效果并且无视“不能破坏”
1772: ---如果设置reason_player,则视为被玩家reason_player移动
1773: ---@return integer
1774: ---@param targets Card|Group
1775: ---@param reason integer
1776: ---@param dest? integer
1777: ---@param reason_player? integer
1778: function Duel.Destroy(targets,reason,dest,reason_player) end
1779:
1780: ---以reason原因,pos表示形式除外targets,返回值是实际被操作的数量
1781: ---如果reason包含REASON_TEMPORARY,那么视为是暂时除外,可以通过Duel.ReturnToField返回到场上
1782: ---如果设置reason_player,则视为被玩家reason_player移动
1783: ---@return integer
1784: ---@param targets Card|Group
1785: ---@param pos integer
1786: ---@param reason integer
1787: ---@param reason_player? integer
1788: function Duel.Remove(targets,pos,reason,reason_player) end
1789:
1790: ---以reason原因把targets送去墓地,返回值是实际被操作的数量
1791: ---如果设置reason_player,则视为被玩家reason_player移动
1792: ---@return integer
1793: ---@param targets Card|Group
1794: ---@param reason integer
1795: ---@param reason_player? integer
1796: function Duel.SendtoGrave(targets,reason,reason_player) end
1797:
1798: ---以reason原因把targets送去玩家player的手卡,返回值是实际被操作的数量
1799: ---如果player是nil则返回卡的持有者的手卡
1800: ---如果设置reason_player,则视为被玩家reason_player移动
1801: ---@return integer
1802: ---@param targets Card|Group
1803: ---@param player integer|nil
1804: ---@param reason integer
1805: ---@param reason_player? integer
1806: function Duel.SendtoHand(targets,player,reason,reason_player) end
1807:
1808: ---以reason原因把targets送去玩家player的卡组,返回值是实际被操作的数量
1809: ---如果player是nil则返回卡的持有者的卡组
1810: ---如果seq=0,则是返回卡组最顶端;seq=1则是返回卡组最底端;
1811: ---其余情况则是返回最顶端并且标记需要洗卡组
1812: ---如果设置reason_player,则视为被玩家reason_player移动
1813: ---@return integer
1814: ---@param targets Card|Group
1815: ---@param player integer|nil
1816: ---@param seq integer
1817: ---@param reason integer
1818: ---@param reason_player? integer
554fa89569 2024-06-28 1819: function Duel.SendtoDeck(targets,player,seq,reason,reason_player) end
1820:
1821: ---以reason原因把灵摆卡targets表侧表示送去玩家player的额外卡组,返回值是实际被操作的数量
1822: ---如果player是nil则返回卡的持有者的额外卡组
1823: ---@return integer
1824: ---@param targets Card|Group
1825: ---@param player integer|nil
1826: ---@param reason integer
1827: function Duel.SendtoExtraP(targets,player,reason) end
1828:
1829: ---此函数返回之前一次卡片操作实际操作的卡片组。包括
1830: ---Duel.Destroy, Duel.Remove, Duel.SendtoGrave,
1831: ---Duel.SendtoHand, Duel.SendtoDeck, Duel.SendtoExtraP, Duel.Release,
1832: ---Duel.ChangePosition, Duel.SpecialSummon, Duel.DiscardDeck
1833: ---@return Group
1834: function Duel.GetOperatedGroup() end
1835:
1836: ---让玩家 player 以效果e对c[在区域 zone]进行通常召唤(非set),至少使用min个祭品
1837: ---如果e=nil,那么就按照一般的通常召唤规则进行通常召唤
1838: ---如果ignore_count=true,则忽略每回合的通常召唤次数限制
1839: ---@param player integer
1840: ---@param c Card
1841: ---@param ignore_count boolean
1842: ---@param e Effect|nil
1843: ---@param min? integer default: 0
1844: ---@param zone? integer default: 0x1f
1845: function Duel.Summon(player,c,ignore_count,e,min,zone) end
1846:
1847: ---让玩家player对c[用 sumtype 方式]进行特殊召唤手续(?)
1848: ---@param player integer
1849: ---@param c Card
1850: ---@param sumtype? integer default: 0
1851: function Duel.SpecialSummonRule(player,c,sumtype) end
1852:
1853: ---让玩家player以tuner作为调整,场上的卡[或mg]为素材,对c进行同调召唤手续
1854: ---@param player integer
1855: ---@param c Card
1856: ---@param tuner Card|nil
1857: ---@param mg? Group|nil
1858: ---@param minc? integer default: 0
1859: ---@param maxc? integer default: 0
1860: function Duel.SynchroSummon(player,c,tuner,mg,minc,maxc) end
1861:
1862: ---让玩家player用场上的卡[或mg][选min-max个素材]对c进行XYZ召唤手续
1863: ---mg非空且min为0则直接把mg全部作为XYZ素材
1864: ---@param player integer
1865: ---@param c Card
1866: ---@param mg Group|nil
1867: ---@param min? integer default: 0
1868: ---@param max? integer default: 0
1869: function Duel.XyzSummon(player,c,mg,min,max) end
1870:
1871: ---让玩家player以mg[中除lcard以外的最少minc,最多maxc张卡]为素材将pcard连接召唤。
1872: ---@param player integer
1873: ---@param pcard Card
1874: ---@param mg Group|nil
1875: ---@param lcard? Card
1876: ---@param minc? integer
1877: ---@param maxc? integer
1878: function Duel.LinkSummon(player,pcard,mg,lcard,minc,maxc) end
1879:
1880: ---让玩家 player 以效果e对c[在区域 zone]进行通常召唤的Set,至少使用min个祭品
1881: ---如果e=nil,那么就按照一般的通常召唤规则进行通常召唤
1882: ---如果ignore_count=true,则忽略每回合的通常召唤次数限制
1883: ---@param player integer
1884: ---@param c Card
1885: ---@param ignore_count boolean
1886: ---@param e Effect|nil
1887: ---@param min? integer default: 0
1888: ---@param zone? integer default: 0x1f
1889: function Duel.MSet(player,c,ignore_count,e,min,zone) end
1890:
1891: ---让玩家player把targets盖放到target_player的魔法陷阱区, confirm 表示是否需要确认
1892: ---若targets为Group,则返回成功操作的数量
1893: ---@return integer
1894: ---@param player integer
1895: ---@param targets Card|Group
1896: ---@param target_player? integer default: player
1897: ---@param confirm? boolean default: true
1898: function Duel.SSet(player,targets,target_player,confirm) end
1899:
1900: ---根据code新建一个衍生物并返回,该衍生物的拥有者为player
1901: ---@return Card
1902: ---@param player integer
1903: ---@param code integer
1904: function Duel.CreateToken(player,code) end
1905:
1906: ---让玩家 sumplayer 以sumtype方式,pos表示形式把targets特殊召唤到target_player场上[的区域 zone]
1907: ---如果nocheck为true则无视卡的召唤条件,如果nolimit为true则无视卡的苏生限制
1908: ---返回值是特殊召唤成功的卡的数量
1909: ---@return integer
1910: ---@param targets Card|Group
1911: ---@param sumtype integer
1912: ---@param sumplayer integer
1913: ---@param target_player integer
1914: ---@param nocheck boolean
1915: ---@param nolimit boolean
1916: ---@param pos integer
1917: ---@param zone? integer default: 0xff
1918: function Duel.SpecialSummon(targets,sumtype,sumplayer,target_player,nocheck,nolimit,pos,zone) end
1919:
1920: ---此函数是Duel.SpecialSummon的分解过程,只特殊召唤一张卡c ,其他参数用法和 Duel.SpecialSummon 一样
1921: ---此函数用于一个效果同时特殊召唤多张参数不同的卡
1922: ---此函数必须和Duel.SpecialSummonComplete一起使用
1923: ---返回值表示是否特殊召唤成功
1924: ---@return boolean
1925: ---@param c Card
1926: ---@param sumtype integer
1927: ---@param sumplayer integer
1928: ---@param target_player integer
1929: ---@param nocheck boolean
1930: ---@param nolimit boolean
1931: ---@param pos integer
1932: ---@param zone? integer default: 0xff
1933: function Duel.SpecialSummonStep(c,sumtype,sumplayer,target_player,nocheck,nolimit,pos,zone) end
1934:
1935: ---此函数在确定复数个Duel.SpecialSummonStep调用完毕之后调用,用于触发事件
1936: ---@return nil|integer
1937: function Duel.SpecialSummonComplete() end
1938:
1939: ---检查玩家player能否向卡片c添加count个countertype类型的指示物,如果 player 不是 0或者1,则返回false
1940: ---@return boolean
1941: ---@param player integer
1942: ---@param countertype? integer
1943: ---@param count? integer
1944: ---@param c? Card
1945: function Duel.IsCanAddCounter(player,countertype,count,c) end
1946:
1947: ---让玩家player以reason为原因移除场上存在的countertype类型的count个指示物,返回值表示是否成功
1948: ---s表示对player来说的己方的可移除指示物的位置,o表示对player来说的对方的可移除指示物的位置
1949: ---@return boolean
1950: ---@param player integer
1951: ---@param s integer
1952: ---@param o integer
1953: ---@param countertype integer
1954: ---@param count integer
1955: ---@param reason integer
1956: function Duel.RemoveCounter(player,s,o,countertype,count,reason) end
1957:
1958: ---检查玩家player以reason为原因是否能移除场上的countertype类型的count个指示物
1959: ---s表示对player来说的己方的可移除指示物的位置,o表示对player来说的对方的可移除指示物的位置
1960: ---@return boolean
1961: ---@param player integer
1962: ---@param s integer
1963: ---@param o integer
1964: ---@param countertype integer
1965: ---@param count integer
1966: ---@param reason integer
1967: function Duel.IsCanRemoveCounter(player,s,o,countertype,count,reason) end
1968:
1969: ---返回场上存在的countertype类型的指示物的数量
1970: ---s表示对player来说的己方的可移除指示物的位置,o表示对player来说的对方的可移除指示物的位置
1971: ---@return integer
1972: ---@param player integer
1973: ---@param s integer
1974: ---@param o integer
1975: ---@param countertype integer
1976: function Duel.GetCounter(player,s,o,countertype) end
1977:
1978: ---改变targets的表示形式返回实际操作的数量,若只有2个参数,则不管什么表示形式,都变成 第二个参数 代表的形式
1979: ---表侧攻击表示 = au
1980: ---里侧攻击表示 = ad
1981: ---表侧守备表示 = du
1982: ---里侧守备表示 = dd
1983: ---如果noflip=true则不触发反转效果(但会触发反转时的诱发效果)
1984: ---如果setavailable=true则对象之后变成里侧也发动反转效果
1985: ---@return integer
1986: ---@param targets Card|Group
1987: ---@param au integer
1988: ---@param ad? integer default: au
1989: ---@param du? integer default: au
1990: ---@param dd? integer default: au
1991: ---@param noflip? boolean default: false
1992: ---@param setavailable? boolean default: false
1993: function Duel.ChangePosition(targets,au,ad,du,dd,noflip,setavailable) end
1994:
1995: ---以reason原因解放targets ,返回值是实际解放的数量
1996: ---如果reason含有REASON_COST,则不会检查卡片是否不受效果影响
1997: ---如果设置reason_player,则视为被玩家reason_player移动
1998: ---@return integer
1999: ---@param targets Card|Group
2000: ---@param reason integer
2001: ---@param reason_player? integer
2002: function Duel.Release(targets,reason,reason_player) end
2003:
2004: ---让玩家move_player把c移动的target_player的场上,返回值表示是否成功
2005: ---dest只能是LOCATION_MZONE或者LOCATION_SZONE,pos表示可选表示形式, enable 表示是否立刻适用c的效果
2006: ---@return boolean
2007: ---@param c Card
2008: ---@param move_player integer
2009: ---@param target_player integer
2010: ---@param dest integer
2011: ---@param pos integer
2012: ---@param enable boolean
2013: ---@param zone? integer
2014: function Duel.MoveToField(c,move_player,target_player,dest,pos,enable,zone) end
2015:
2016: ---把c以表示形式pos返回到场上[的区域 zone],pos默认值是离场前的表示形式,返回值表示是否成功
2017: ---c必须是以REASON_TEMPORARY原因离场,并且离场后没有离开过那个位置
2018: ---@return boolean
2019: ---@param c Card
2020: ---@param pos? integer
2021: ---@param zone? integer default: 0xff
2022: function Duel.ReturnToField(c,pos,zone) end
2023:
2024: ---移动c的序号,通常用于在场上换格子或者在卡组中移动到最上方或者最下方
2025: ---@param c Card
2026: ---@param seq integer
2027: function Duel.MoveSequence(c,seq) end
2028:
2029: ---交换c1和c2的位置
2030: ---@param c1 Card
2031: ---@param c2 Card
2032: function Duel.SwapSequence(c1,c2) end
2033:
2034: ---发动效果e(?)
2035: ---@param e Effect
2036: function Duel.Activate(e) end
2037:
2038: ---设定连锁条件,f的函数原型为 bool f(e,ep,tp)
2039: ---e表示要限制连锁的效果,ep表示要限制连锁的玩家,tp表示发动该效果的玩家
2040: ---在cost或者target处理中调用此函数可以限制可以连锁的效果的种类(如超融合)
2041: ---如果f返回false表示不能连锁,一旦设置连锁条件后发生了新的连锁那么连锁条件将会解除
2042: ---@param f function
2043: function Duel.SetChainLimit(f) end
2044:
2045: ---功能同Duel.SetChainLimit,但是此函数设定的连锁条件直到连锁结束才会解除
2046: ---@param f function
2047: function Duel.SetChainLimitTillChainEnd(f) end
2048:
2049: ---返回玩家player受到的连锁素材的效果,此函数仅用于融合类卡的效果
554fa89569 2024-06-28 2050: ---@return Effect
2051: ---@param player integer
2052: function Duel.GetChainMaterial(player) end
2053:
2054: ---确认玩家player卡组最上方count张卡
2055: ---@param player integer
2056: ---@param count integer
2057: function Duel.ConfirmDecktop(player,count) end
2058:
2059: ---确认玩家player额外卡组里侧的卡 最上方count张卡
2060: ---@param player integer
2061: ---@param count integer
2062: function Duel.ConfirmExtratop(player,count) end
2063:
2064: ---给玩家player确认targets
2065: ---@param player integer
2066: ---@param targets Card|Group
2067: function Duel.ConfirmCards(player,targets) end
2068:
2069: ---让玩家sort_player对玩家target_player的卡组最上方count张卡进行排序,最先选的卡在最上面,然后下面是第二张选择的卡,以此类推
2070: ---最多只能排序16张卡
2071: ---@param sort_player integer
2072: ---@param target_player integer
2073: ---@param count integer
2074: function Duel.SortDecktop(sort_player,target_player,count) end
2075:
2076: ---检查当前是否是event时点
2077: ---若get_info=true并且是正确的时点,则还返回触发时点的信息 eg,ep,ev,re,r,rp
2078: ---@return boolean
554fa89569 2024-06-28 2079: ---@return Group|nil
554fa89569 2024-06-28 2080: ---@return integer|nil
554fa89569 2024-06-28 2081: ---@return integer|nil
554fa89569 2024-06-28 2082: ---@return Effect|nil
554fa89569 2024-06-28 2083: ---@return integer|nil
554fa89569 2024-06-28 2084: ---@return integer|nil
2085: ---@param event integer
2086: ---@param get_info? boolean
2087: function Duel.CheckEvent(event,get_info) end
2088:
2089: ---以eg,ep,ev,re,r,rp触发一个时点 code
2090: ---@param eg Group|Card
2091: ---@param code integer
2092: ---@param re Effect
2093: ---@param r integer
2094: ---@param rp integer
2095: ---@param ep integer
2096: ---@param ev integer
2097: function Duel.RaiseEvent(eg,code,re,r,rp,ep,ev) end
2098:
2099: ---以eg,ep,ev,re,r,rp为卡片ec触发一个单体时点 code
2100: ---@param ec Card
2101: ---@param code integer
2102: ---@param re Effect
2103: ---@param r integer
2104: ---@param rp integer
2105: ---@param ep integer
2106: ---@param ev integer
2107: function Duel.RaiseSingleEvent(ec,code,re,r,rp,ep,ev) end
2108:
2109: ---检查当前是否是timing提示时点
2110: ---@return boolean
2111: ---@param timing integer
2112: function Duel.CheckTiming(timing) end
2113:
2114: ---检查场地卡号是否是code [,来源玩家是否是 player][,生效区域是否在 loc 内]
2115: ---场地卡号指当前生效的场地卡的卡号,或者海神的巫女把场地变化效果的值
2116: ---来源玩家指当前生效的场地卡的控制者,或者海神的巫女等卡的控制者
2117: ---@return boolean
2118: ---@param code integer
2119: ---@param player? integer default: PLAYER_ALL
2120: ---@param loc? integer default: LOCATION_ONFIELD
2121: function Duel.IsEnvironment(code,player,loc) end
2122:
2123: ---当前效果处理完令player以win_reason决斗胜利
2124: ---@param player integer
2125: ---@param win_reason integer
2126: function Duel.Win(player,win_reason) end
2127:
2128: ---让玩家player以原因reason抽count张卡,返回实际抽的卡的数量
2129: ---如果reason含有REASON_RULE则此次抽卡不受“不能抽卡”的效果的影响
2130: ---@return integer
2131: ---@param player integer
2132: ---@param count integer
2133: ---@param reason integer
2134: function Duel.Draw(player,count,reason) end
2135:
2136: ---以reason原因给与玩家player造成value的伤害,返回实际收到的伤害值
2137: ---如果受到伤害变成回复等效果的影响时,返回值为0.
2138: ---is_step为true则是伤害/恢复LP过程的分解,需要调用Duel.RDComplete()触发时点
2139: ---@return integer
2140: ---@param player integer
2141: ---@param value integer
2142: ---@param reason integer
2143: ---@param is_step? boolean default: false
2144: function Duel.Damage(player,value,reason,is_step) end
2145:
2146: ---以reason原因使玩家player回复value的LP,返回实际的回复值
2147: ---如果受到回复变成伤害等效果的影响时,返回值为0.
2148: ---is_step为true则是伤害/恢复LP过程的分解,需要调用Duel.RDComplete()触发时点
2149: ---@return integer
2150: ---@param player integer
2151: ---@param value integer
2152: ---@param reason integer
2153: ---@param is_step? boolean default: false
2154: function Duel.Recover(player,value,reason,is_step) end
2155:
2156: ---在调用Duel.Damage/Duel.Recover时,若is_step参数为true,则需调用此函数触发时点
2157: function Duel.RDComplete() end
2158:
2159: ---把c1作为玩家player的装备卡装备给c2,返回值表示是否成功
2160: ---up=false则保持装备卡之前的表示形式
2161: ---is_step=true则是装备过程的分解,需要配合Duel.EquipComplete使用
2162: ---@return boolean
2163: ---@param player integer
2164: ---@param c1 Card
2165: ---@param c2 Card
2166: ---@param up? boolean default: true
2167: ---@param is_step? boolean default: false
2168: function Duel.Equip(player,c1,c2,up,is_step) end
2169:
2170: ---在调用Duel.Equip时,若is_step参数为true,则需调用此函数触发时点
2171: function Duel.EquipComplete() end
2172:
2173: ---让玩家 player [直到 reset_count 次 reset_phase 时][在区域 zone]
2174: ---得到 targets 的控制权,返回值表示是否成功
2175: ---@return boolean
2176: ---@param targets Card|Group
2177: ---@param player integer
2178: ---@param reset_phase? integer default: 0
2179: ---@param reset_count? integer default: 0
2180: ---@param zone? integer default: 0xff
2181: function Duel.GetControl(targets,player,reset_phase,reset_count,zone) end
2182:
2183: ---交换targets1与targets2的控制权,返回值表示是否成功
2184: ---第三个第四个参数同 Duel.GetControl
2185: ---@return boolean
2186: ---@param targets1 Card|Group
2187: ---@param targets2 Card|Group
2188: ---@param reset_phase? integer default: 0
2189: ---@param reset_count? integer default: 0
2190: function Duel.SwapControl(targets1,targets2,reset_phase,reset_count) end
2191:
2192: ---检查玩家player是否能支付cost点lp,must_pay表示不能用代替支付的效果
2193: ---@return boolean
2194: ---@param player integer
2195: ---@param cost integer
2196: ---@param must_pay? boolean default: false
2197: function Duel.CheckLPCost(player,cost,must_pay) end
2198:
2199: ---让玩家player支付cost点lp,must_pay表示不能用代替支付的效果
2200: ---@param player integer
2201: ---@param cost integer
2202: ---@param must_pay? boolean default: false
2203: function Duel.PayLPCost(player,cost,must_pay) end
2204:
2205: ---以原因reason把玩家player的卡组最上端count张卡送去墓地,返回实际转移的数量
2206: ---@return integer
2207: ---@param player integer
2208: ---@param count integer
2209: ---@param reason integer
2210: function Duel.DiscardDeck(player,count,reason) end
2211:
2212: ---过滤函数让玩家player选择并以reason原因丢弃满足筛选条件f兵不等于ex的min-max张手卡
2213: ---第7个参数开始为额外参数
2214: ---@return integer
2215: ---@param player integer
2216: ---@param f function|nil
2217: ---@param min integer
2218: ---@param max integer
2219: ---@param reason integer
2220: ---@param ex Card|Group|nil
2221: ---@param ... any
2222: function Duel.DiscardHand(player,f,min,max,reason,ex,...) end
2223:
2224: ---使下一个操作不检查是否需要洗切卡组或手卡
2225: ---注:如果不调用此函数,
2226: ---除了调用Duel.DiscardDeck和Duel.Draw之外从卡组中取出卡或者把卡加入手卡
2227: ---或者把卡加入卡组(非最上端或最底端)时,系统会自动在效果处理结束时洗切卡组或手卡
2228: ---如果不希望如此,比如从卡组顶端除外一张卡等操作,那么需要调用此函数
2229: ---此函数仅保证紧接着的一次操作不会进行洗卡检测
2230: ---@param disable? boolean default: true
2231: function Duel.DisableShuffleCheck(disable) end
2232:
2233: ---关闭卡片的自爆检查。不传参或传true为关闭,传false为启用自爆检查
2234: ---@param enabled? boolean default: true
2235: function Duel.DisableSelfDestroyCheck(enabled) end
2236:
2237: ---手动洗切玩家player的卡组
2238: ---注:会重置洗卡检测的状态
2239: ---@param player integer
2240: function Duel.ShuffleDeck(player) end
2241:
2242: ---手动洗切玩家player的额外卡组
2243: ---@param player integer
2244: function Duel.ShuffleExtra(player) end
2245:
2246: ---手动洗切玩家player的手卡
2247: ---注:会重置洗卡检测的状态
2248: ---@param player integer
2249: function Duel.ShuffleHand(player) end
2250:
2251: ---洗切覆盖的卡片组 g (实例:魔术礼帽),若g中有表侧表示的卡,则此函数无效
2252: ---此函数现在可以洗切魔陷区的覆盖卡
2253: ---@param g Group
2254: function Duel.ShuffleSetCard(g) end
2255:
2256: ---将攻击怪兽变为c
2257: ---若 ignore_count=true 则原来的攻击怪兽不视为攻击过
2258: ---@param c Card
2259: ---@param ignore_count? boolean default: false
2260: function Duel.ChangeAttacker(c,ignore_count) end
2261:
2262: ---将攻击对象变为c,c为nil表示直接攻击,返回值表示是否成功转移攻击对象
2263: ---@return boolean
2264: ---@param c Card|nil
2265: function Duel.ChangeAttackTarget(c) end
2266:
2267: ---令c1与c2进行战斗伤害计算(c1 攻击 c2)
2268: ---若 new_attack=true 则视为 攻击的卡进行过攻击宣言(?)
2269: ---@param c1 Card
2270: ---@param c2 Card
2271: ---@param new_attack? boolean default: false
2272: function Duel.CalculateDamage(c1,c2,new_attack) end
2273:
2274: ---返回玩家player在本次战斗中受到的伤害
2275: ---@return integer
2276: ---@param player integer
2277: function Duel.GetBattleDamage(player) end
2278:
2279: ---把玩家player在本次战斗中受到的伤害变成value,若 check=false 则原本战斗伤害就算为0也改变伤害
2280: ---@param player integer
2281: ---@param value integer
2282: ---@param check? boolean default: true
2283: function Duel.ChangeBattleDamage(player,value,check) end
2284:
2285: ---把连锁chainc的对象换成g
2286: ---@param chainc integer
2287: ---@param g Group
2288: function Duel.ChangeTargetCard(chainc,g) end
2289:
2290: ---把连锁chainc的对象玩家换成player
2291: ---@param chainc integer
2292: ---@param player integer
2293: function Duel.ChangeTargetPlayer(chainc,player) end
2294:
2295: ---把连锁chainc的参数换成param
2296: ---@param chainc integer
2297: ---@param param integer
2298: function Duel.ChangeTargetParam(chainc,param) end
2299:
2300: ---中断当前效果,使之后的效果处理视为不同时处理,此函数会造成错时点
2301: function Duel.BreakEffect() end
2302:
2303: ---把连锁chainc的效果的处理函数换成f,用于实现“把效果变成”等的效果
2304: ---f(e,tp,eg,ep,ev,re,r,rp)
2305: ---@param chainc integer
2306: ---@param f function
2307: function Duel.ChangeChainOperation(chainc,f) end
2308:
2309: ---使连锁chainc的发动无效,返回值表示是否成功
2310: ---@return boolean
2311: ---@param chainc integer
2312: function Duel.NegateActivation(chainc) end
2313:
2314: ---使连锁chainc的效果无效,返回值表示是否成功
2315: ---@return boolean
2316: ---@param chainc integer
2317: ---@param forced? boolean
2318: function Duel.NegateEffect(chainc,forced) end
2319:
2320: ---使和卡片c有关的连锁都无效化,发生reset事件则重置,reset 默认包含 RESET_CHAIN
2321: ---@param c Card
2322: ---@param reset integer
2323: function Duel.NegateRelatedChain(c,reset) end
2324:
2325: ---使正在召唤·反转召唤·特殊召唤的targets的召唤无效
2326: ---@param targets Card|Group
2327: function Duel.NegateSummon(targets) end
2328:
2329: ---手动增加1次玩家[对于卡片c]的已经通常召唤过的次数
2330: ---@param c? Card
2331: function Duel.IncreaseSummonedCount(c) end
2332:
2333: ---检查回合玩家本回合是否还能通常召唤[卡片c]
2334: ---@return boolean
2335: ---@param c? Card
2336: function Duel.CheckSummonedCount(c) end
2337:
2338: ---返回玩家player的场上location可用的[区域 zone 里的]空格数
2339: ---location只能是LOCATION_MZONE或者LOCATION_SZONE
2340: ---reason为LOCATION_REASON_TOFIELD或LOCATION_REASON_CONTROL
2341: ---##第三个第四个额外参数与凯撒斗技场等限制格子的效果有关
2342: ---@return integer
2343: ---@param player integer
2344: ---@param location integer
2345: ---@param use_player? integer
2346: ---@param reason? integer
2347: ---@param zone? integer default: 0xff
2348: function Duel.GetLocationCount(player,location,use_player,reason,zone) end
2349:
2350: ---返回玩家player场上[targets 离开后]可用的[区域 zone 里的]怪兽区数量
2351: ---##第三个第四个额外参数与凯撒斗技场等限制格子的效果有关
2352: ---@return integer
2353: ---@return integer zone
2354: ---@param player integer
2355: ---@param targets? Group|Card
2356: ---@param use_player? integer
2357: ---@param reason? integer
2358: ---@param zone? integer default: 0xff
2359: function Duel.GetMZoneCount(player,targets,use_player,reason,zone) end
2360:
2361: ---返回玩家player场上[假如因玩家 reason_player 的原因让 targets 离场后,把卡片 sc 在 zone 区域特殊召唤]可用的 能让额外卡组的怪兽 出场的空格数
2362: ---@return integer
2363: ---@param player integer
2364: ---@param reason_player? integer default: player
2365: ---@param targets? Group|Card|nil
2366: ---@param sc? Card|integer
2367: ---@param zone? integer default: 0xff
2368: function Duel.GetLocationCountFromEx(player,reason_player,targets,sc,zone) end
2369:
2370: ---返回玩家player场上[对于 use_player 来说]可用的怪兽区数量(?)
2371: ---@return integer
2372: ---@param player integer
2373: ---@param use_player? integer
2374: function Duel.GetUsableMZoneCount(player,use_player) end
2375:
2376: ---返回以玩家player来看的 s_range 和 o_range 区域的处于连接状态的卡片组[其实只要后面2个参数不为0就行,只要不为0,都会变成LOCATION_MZONE](?)
2377: ---@return Group
2378: ---@param player integer
2379: ---@param s_range integer
2380: ---@param o_range integer
2381: function Duel.GetLinkedGroup(player,s_range,o_range) end
2382:
2383: ---返回以玩家player来看的 s_range 和 o_range 区域的处于连接状态的卡片的数量(?)
2384: ---@return integer
2385: ---@param player integer
2386: ---@param s_range integer
2387: ---@param o_range integer
2388: function Duel.GetLinkedGroupCount(player,s_range,o_range) end
2389:
2390: ---返回以玩家player来看的所有连接区域
2391: ---@return integer
2392: ---@param player integer
2393: function Duel.GetLinkedZone(player) end
2394:
2395: ---返回玩家player的场上位于location序号为seq的卡,常用于获得场地区域·灵摆区域的卡
2396: ---注:召唤·反转召唤·特殊召唤 之际 的卡无法获取
2397: ---@return Card
2398: ---@param player integer
2399: ---@param location integer
2400: ---@param seq integer
2401: function Duel.GetFieldCard(player,location,seq) end
2402:
2403: ---检查玩家player的场上位于location序号为seq的空格是否可用
2404: ---@return boolean
2405: ---@param player integer
2406: ---@param location integer
2407: ---@param seq integer
2408: function Duel.CheckLocation(player,location,seq) end
2409:
2410: ---返回当前的连锁个数(即正在处理的连锁序号)
2411: ---@return integer
2412: function Duel.GetCurrentChain() end
2413:
2414: ---返回当前已执行Target函数的连锁个数
2415: ---@return integer
2416: function Duel.GetReadyChain() end
2417:
2418: ---返回连锁chainc的信息,如果chainc=0,则返回当前正在处理的连锁的信息
2419: ---此函数根据传入的参数个数按顺序返回相应数量的返回值参数可以是:
2420: ---CHAININFO_CHAIN_COUNT 连锁序号
2421: ---CHAININFO_TRIGGERING_EFFECT 连锁的效果
2422: ---CHAININFO_TRIGGERING_PLAYER 连锁的玩家
2423: ---CHAININFO_TRIGGERING_CONTROLER 连锁发生位置所属玩家
2424: ---CHAININFO_TRIGGERING_LOCATION 连锁发生位置
2425: ---CHAININFO_TRIGGERING_SEQUENCE 连锁发生的位置的序号
2426: ---CHAININFO_TARGET_CARDS 连锁的对象卡片组
2427: ---CHAININFO_TARGET_PLAYER 连锁的对象玩家
2428: ---CHAININFO_TARGET_PARAM 连锁的对象参数
2429: ---CHAININFO_DISABLE_REASON 连锁被无效的原因效果
2430: ---CHAININFO_DISABLE_PLAYER 连锁被无效的原因玩家
2431: ---CHAININFO_CHAIN_ID 连锁的唯一标识
2432: ---CHAININFO_TYPE 连锁卡片的类型(怪兽·魔法·陷阱)
2433: ---CHAININFO_EXTTYPE 连锁卡片的具体类型(例如同调怪兽·永续魔法·反击陷阱)
2434: ---举例:
2435: ---Duel.GetChainInfo(0,CHAININFO_TRIGGERING_LOCATION,CHAININFO_TARGET_CARDS)
2436: ---将会返回当前连锁发生的位置和对象卡
2437: ---@return ...
2438: ---@param chainc integer
2439: ---@param ... any
2440: function Duel.GetChainInfo(chainc,...) end
2441:
2442: ---返回连锁 chainc 的相关参数,如果 chainc=0,则返回当前正在处理的连锁的相关参数
2443: ---返回6个参数,eg,ep,ev,re,r,rp
2444: ---@return Group
2445: ---@return integer
2446: ---@return integer
2447: ---@return Effect
2448: ---@return integer
2449: ---@return integer
2450: ---@param chainc integer
2451: function Duel.GetChainEvent(chainc) end
2452:
2453: ---返回当前连锁的所有的对象卡,一般只有一个对象时使用
2454: ---##多个对象也能使用,剩下的对象依次按顺序返回,但是很容易记错对象的顺序,所以不建议对多个对象使用
2455: ---@return Card
2456: ---@return ... Card
2457: function Duel.GetFirstTarget() end
2458:
2459: ---返回当前连锁所有有关联的对象卡
2460: ---@return Group
2461: function Duel.GetTargetsRelateToChain() end
2462:
2463: ---返回当前的阶段
2464: ---@return integer
2465: function Duel.GetCurrentPhase() end
2466:
2467: ---跳过玩家player的phase阶段,并在特定的阶段后reset,reset参数和效果相同
2468: ---#value只对phase=PHASE_BATTLE才有用,value=1跳过战斗阶段的结束步骤,用于“变成回合结束阶段”等(招财猫王,闪光弹)
2469: ---@param player integer
2470: ---@param phase integer
2471: ---@param reset_flag integer
2472: ---@param reset_count integer
2473: ---@param value? integer
2474: function Duel.SkipPhase(player,phase,reset_flag,reset_count,value) end
2475:
2476: ---用于在伤害阶段检查是否已经计算了战斗伤害
2477: ---@return boolean
2478: function Duel.IsDamageCalculated() end
2479:
2480: ---返回此次战斗攻击的卡
2481: ---@return Card
2482: function Duel.GetAttacker() end
2483:
2484: ---返回此次战斗被攻击的卡,如果返回nil表示是直接攻击
2485: ---@return Card
2486: function Duel.GetAttackTarget() end
2487:
2488: ---返回由player操控的正处于战斗中的怪兽。如果没有战斗或没有目标则会返回nil。
554fa89569 2024-06-28 2489: ---@return Card|nil
554fa89569 2024-06-28 2490: ---@return Card|nil
2491: ---@param player integer
2492: function Duel.GetBattleMonster(player) end
2493:
2494: ---无效此次攻击,返回值表示是否成功
2495: ---此次攻击已经被其他效果无效或导致攻击的卡不能攻击则返回false
2496: ---@return boolean
2497: function Duel.NegateAttack() end
2498:
2499: ---使攻击卡[或卡片c]可以再进行1次攻击(比如 大开辟,破灭的女王)
2500: ---@param c? Card
2501: function Duel.ChainAttack(c) end
2502:
2503: ---刷新场上的卡的信息
2504: ---非特定情况或者不清楚原理请勿使用此函数以免形成死循环
2505: function Duel.Readjust() end
2506:
2507: ---手动刷新场上[受到卡片c影响]的卡的无效状态
2508: ---@param c? Card
2509: function Duel.AdjustInstantly(c) end
2510:
2511: ---立刻刷新场地信息
2512: function Duel.AdjustAll() end
2513:
2514: ---返回以player来看的指定位置的卡,s代表以player来看的自己的位置,o代表以player来看的对方的位置
2515: ---@return Group
2516: ---@param player integer
2517: ---@param s integer
2518: ---@param o integer
2519: function Duel.GetFieldGroup(player,s,o) end
2520:
2521: ---同 Duel.GetFieldGroup ,只是返回的是卡的数量
2522: ---@return integer
2523: ---@param player integer
2524: ---@param s integer
2525: ---@param o integer
2526: function Duel.GetFieldGroupCount(player,s,o) end
2527:
2528: ---返回玩家player的卡组最上方的count张卡
2529: ---@return Group
2530: ---@param player integer
2531: ---@param count integer
2532: function Duel.GetDecktopGroup(player,count) end
2533:
2534: ---返回玩家player的额外卡组表侧表示的卡中最上方的count张卡
2535: ---@return Group
2536: ---@param player integer
2537: ---@param count integer
2538: function Duel.GetExtraTopGroup(player,count) end
2539:
2540: ---过滤函数,返回以player来看的指定位置满足过滤条件f并且不等于ex的卡
2541: ---s代表以player来看的自己的位置,o代表以player来看的对方的位置
2542: ---第6个参数开始为额外参数
2543: ---@return Group
2544: ---@param f function|nil
2545: ---@param player integer
2546: ---@param s integer
2547: ---@param o integer
2548: ---@param ex Card|Group|nil
2549: ---@param ... any
2550: function Duel.GetMatchingGroup(f,player,s,o,ex,...) end
2551:
2552: ---过滤函数,返回以player来看的指定位置满足过滤条件f并且不等于ex的卡的数量
2553: ---s代表以player来看的自己的位置,o代表以player来看的对方的位置
2554: ---第6个参数开始为额外参数
2555: ---@return integer
2556: ---@param f function|nil
2557: ---@param player integer
2558: ---@param s integer
2559: ---@param o integer
2560: ---@param ex Card|Group|nil
2561: ---@param ... any
2562: function Duel.GetMatchingGroupCount(f,player,s,o,ex,...) end
2563:
2564: ---过滤函数,返回以player来看的指定位置满足过滤条件f并且不等于ex的第一张卡,没有则返回nil
2565: ---s代表以player来看的自己的位置,o代表以player来看的对方的位置
2566: ---第6个参数开始为额外参数
2567: ---@return Card
2568: ---@param f function|nil
2569: ---@param player integer
2570: ---@param s integer
2571: ---@param o integer
2572: ---@param ex Card|Group|nil
2573: ---@param ... any
2574: function Duel.GetFirstMatchingCard(f,player,s,o,ex,...) end
2575:
2576: ---过滤函数,检查以player来看的指定位置是否存在至少count张满足过滤条件f并且不等于ex的卡
2577: ---s代表以player来看的自己的位置,o代表以player来看的对方的位置
2578: ---第7个参数开始为额外参数
2579: ---@return boolean
2580: ---@param f function|nil
2581: ---@param player integer
2582: ---@param s integer
2583: ---@param o integer
2584: ---@param count integer
2585: ---@param ex Card|Group|nil
2586: ---@param ... any
2587: function Duel.IsExistingMatchingCard(f,player,s,o,count,ex,...) end
2588:
2589: ---过滤函数,让玩家sel_player选择以player来看的指定位置满足过滤条件f并且不等于ex的min-max张卡
2590: ---s代表以player来看的自己的位置,o代表以player来看的对方的位置
2591: ---第9个参数开始为额外参数
2592: ---@return Group
2593: ---@param sel_player integer
2594: ---@param f function|nil
2595: ---@param player integer
2596: ---@param s integer
2597: ---@param o integer
2598: ---@param min integer
2599: ---@param max integer
2600: ---@param ex Card|Group|nil
2601: ---@param ... any
2602: function Duel.SelectMatchingCard(sel_player,f,player,s,o,min,max,ex,...) end
2603:
2604: ---返回玩家player能以原因reason解放的卡片组, use_hand=true 则包括手卡
2605: ---@return Group
2606: ---@param player integer
2607: ---@param use_hand? boolean default: false
2608: ---@param reason? integer default: REASON_COST
2609: function Duel.GetReleaseGroup(player,use_hand,reason) end
2610:
2611: ---返回玩家player能以原因reason解放的卡片数量, use_hand=true 则包括手卡
2612: ---@return integer
2613: ---@param player integer
2614: ---@param use_hand? boolean default: false
2615: ---@param reason? integer default: REASON_COST
2616: function Duel.GetReleaseGroupCount(player,use_hand,reason) end
2617:
2618: ---检查玩家player场上是否存在至少count张满足过滤条件f并且不等于ex的能以原因REASON_COST解放的卡
2619: ---第5个参数开始为额外参数
2620: ---@return boolean
2621: ---@param player integer
2622: ---@param f function|nil
2623: ---@param count integer
2624: ---@param ex Card|Group|nil
2625: ---@param ... any
2626: function Duel.CheckReleaseGroup(player,f,count,ex,...) end
2627:
2628: ---过滤函数,让玩家sel_player从场上选择min-max张不等于ex的满足条件f的能以原因REASON_COST解放的卡
2629: ---第6个参数开始为额外参数
2630: ---@return Group
2631: ---@param sel_player integer
2632: ---@param f function|nil
2633: ---@param min integer
2634: ---@param max integer
2635: ---@param ex Card|Group|nil
2636: ---@param ... any
2637: function Duel.SelectReleaseGroup(sel_player,f,min,max,ex,...) end
2638:
2639: ---检查玩家player场上是否存在至少count张满足过滤条件f并且不等于ex的能以原因reason解放的卡,use_hand则包括手卡
2640: ---第5个参数开始为额外参数
2641: ---@return boolean
2642: ---@param player integer
2643: ---@param f function|nil
2644: ---@param count integer
2645: ---@param reason integer
2646: ---@param use_hand boolean
2647: ---@param ex Card|Group|nil
2648: ---@param ... any
2649: function Duel.CheckReleaseGroupEx(player,f,count,reason,use_hand,ex,...) end
2650:
2651: ---过滤函数,让玩家player从场上选择min-max张满足过滤条件f并且不等于ex的能以原因reason解放的卡,use_hand则包括手卡
2652: ---第6个参数开始为额外参数
2653: ---@return Group
2654: ---@param player integer
2655: ---@param f function|nil
2656: ---@param min integer
2657: ---@param max integer
2658: ---@param reason integer
2659: ---@param use_hand boolean
2660: ---@param ex Card|Group|nil
2661: ---@param ... any
2662: function Duel.SelectReleaseGroupEx(player,f,min,max,reason,use_hand,ex,...) end
2663:
2664: ---返回场上用于通常召唤c可解放(上级召唤用)的卡片组
2665: ---@return Group
2666: ---@param c Card
2667: function Duel.GetTributeGroup(c) end
2668:
2669: ---返回场上[或mg中]用于通常召唤c的祭品数量,ex=true则允许对方场上的怪兽(太阳神之翼神龙-球体形)
2670: ---此数量不一定等于Duel.GetTributeGroup的返回值中的卡片数量
2671: ---因为某些卡可以作为多个祭品来使用
2672: ---@return integer
2673: ---@param c Card
2674: ---@param mg? Group
2675: ---@param ex? boolean default: false
2676: function Duel.GetTributeCount(c,mg,ex) end
2677:
2678: ---判断场上[或mg中]是否存在用于通常召唤c[到toplayer场上的区域 zone]的min[到max]个祭品
2679: ---@return Group
2680: ---@param c Card
2681: ---@param min integer
2682: ---@param max? integer|nil default: min
2683: ---@param mg? Group|nil
2684: ---@param toplayer? integer|nil default: c:GetControler()
2685: ---@param zone? integer|nil default: 0x1f
2686: function Duel.CheckTribute(c,min,max,mg,toplayer,zone) end
2687:
2688: ---让玩家player从场上[或mg中]选择用于通常召唤c的min-max个祭品,召唤到 toplayer 场上
2689: ---@return Group
2690: ---@param player integer
2691: ---@param c Card
2692: ---@param min integer
2693: ---@param max integer
2694: ---@param mg? Group|nil
2695: ---@param toplayer? integer|nil default: c:GetControler()
2696: function Duel.SelectTribute(player,c,min,max,mg,toplayer) end
2697:
2698: ---基本同Duel.GetMatchingGroupCount ,不同之处在于需要追加判定卡片是否能成为当前正在处理的效果的对象
2699: ---@return integer
2700: ---@param f function|nil
2701: ---@param player integer
2702: ---@param s integer
2703: ---@param o integer
2704: ---@param ex Card|Group|nil
2705: ---@param ... any
2706: function Duel.GetTargetCount(f,player,s,o,ex,...) end
2707:
2708: ---基本同Duel.IsExistingMatchingCard ,不同之处在于需要追加判定卡片是否能成为当前正在处理的效果的对象
2709: ---@return boolean
2710: ---@param f function|nil
2711: ---@param player integer
2712: ---@param s integer
2713: ---@param o integer
2714: ---@param count integer
2715: ---@param ex Card|Group|nil
2716: ---@param ... any
2717: function Duel.IsExistingTarget(f,player,s,o,count,ex,...) end
2718:
2719: ---基本同Duel.SelectMatchingCard ,不同之处在于此函数会同时将当前正在处理的连锁的对象设置成选择的卡
2720: ---@return Group
2721: ---@param sel_player integer
2722: ---@param f function|nil
2723: ---@param player integer
2724: ---@param s integer
2725: ---@param o integer
2726: ---@param min integer
2727: ---@param max integer
2728: ---@param ex Card|Group|nil
2729: ---@param ... any
2730: function Duel.SelectTarget(sel_player,f,player,s,o,min,max,ex,...) end
2731:
2732: ---返回必须作为素材的卡片组
2733: ---@return Group
2734: ---@param player integer
2735: ---@param ecode integer EFFECT_MUST_BE_FMATERIAL等
2736: function Duel.GetMustMaterial(player,ecode) end
2737:
2738: ---检查卡片组是否满足必须作为素材的条件
2739: ---@return boolean
2740: ---@param player integer
2741: ---@param cards Group|Card
2742: ---@param ecode integer EFFECT_MUST_BE_FMATERIAL等
2743: function Duel.CheckMustMaterial(player,cards,ecode) end
2744:
2745: ---让玩家player从g中选择一组[必须包含gc在内的]融合怪兽c的融合素材
2746: ---##根据c的种类为EFFECT_FUSION_MATERIAL的效果的Operation操作
2747: ---@return Group
2748: ---@param player integer
2749: ---@param c Card
554fa89569 2024-06-28 2750: ---@param g Group
2751: ---@param gc? Card|nil
2752: ---@param chkf? integer default: PLAYER_NONE
2753: ---@param not_material? boolean default: false
2754: function Duel.SelectFusionMaterial(player,c,g,gc,chkf,not_material) end
2755:
2756: ---设置g为需要使用的融合素材
2757: ---@param g Group
2758: function Duel.SetFusionMaterial(g) end
2759:
2760: ---设置g为需要使用的同调素材
2761: ---@param g Group
2762: function Duel.SetSynchroMaterial(g) end
2763:
2764: ---获取玩家可以作为同调素材的卡片组
2765: ---@return Group
2766: ---@param player integer
2767: function Duel.GetSynchroMaterial(player) end
2768:
2769: ---让玩家player从场上[或mg中]选择用于同调c需要的[必须包含smat在内(如果有mg~=nil则忽略此参数)]满足条件的一组素材
2770: ---f1是 1 只需要满足的过滤条件,f2是 min-max 只需要满足的过滤条件
2771: ---f1,f2 之中,至少有一种为调整的条件
2772: ---@return Group
2773: ---@param player integer
2774: ---@param c Card
2775: ---@param f1 function|nil
2776: ---@param f2 function|nil
2777: ---@param min integer
2778: ---@param max integer
2779: ---@param smat? Card|nil
2780: ---@param mg? Group|nil
2781: function Duel.SelectSynchroMaterial(player,c,f1,f2,min,max,smat,mg) end
2782:
2783: ---检查场上[或mg中]是否存在一组[必须包括smat在内的(如果有mg~=nil则忽略此参数)]满足条件的卡作为同调召唤c的素材
2784: ---f1是 1 只需要满足的过滤条件,f2是 min-max 只需要满足的过滤条件
2785: ---f1,f2 之中,至少有一种为调整的条件
2786: ---@return boolean
2787: ---@param c Card
2788: ---@param f1 function|nil
2789: ---@param f2 function|nil
2790: ---@param min integer
2791: ---@param max integer
2792: ---@param smat? Card|nil
2793: ---@param mg? Group|nil
2794: function Duel.CheckSynchroMaterial(c,f1,f2,min,max,smat,mg) end
2795:
2796: ---让玩家从场上[或mg中]选择用于同调c需要的满足条件的以tuner作为调整的min-max张卡的一组素材
2797: ---f1是 1 只需要满足的过滤条件,f2是 min-max 只需要满足的过滤条件
2798: ---@return Group
2799: ---@param player integer
2800: ---@param c Card
2801: ---@param tuner Card
2802: ---@param f1 function|nil
2803: ---@param f2 function|nil
2804: ---@param min integer
2805: ---@param max integer
2806: ---@param mg? Group|nil
2807: function Duel.SelectTunerMaterial(player,c,tuner,f1,f2,min,max,mg) end
2808:
2809: ---检查场上[或mg中]是否存在一组以tuner作为调整,并且满足条件的卡作为同调召唤c的素材
2810: ---f1是 1 只需要满足的过滤条件,f2是 min-max 只需要满足的过滤条件
2811: ---@return boolean
2812: ---@param c Card
2813: ---@param tuner Card
2814: ---@param f1 function|nil
2815: ---@param f2 function|nil
2816: ---@param min integer
2817: ---@param max integer
2818: ---@param mg? Group|nil
2819: function Duel.CheckTunerMaterial(c,tuner,f1,f2,min,max,mg) end
2820:
2821: ---返回玩家player可用的用于仪式召唤素材的卡片组
2822: ---包含手上,场上可解放的以及墓地的仪式魔人等卡
2823: ---@return Group
2824: ---@param player integer
2825: function Duel.GetRitualMaterial(player) end
2826:
2827: ---Duel.GetRitualMaterial并包含无等级怪兽
2828: ---@return Group
2829: ---@param player integer
2830: function Duel.GetRitualMaterialEx(player) end
2831:
2832: ---解放仪式用的素材g,如果是墓地的仪式魔人等卡则除外
2833: ---@param g Group
2834: function Duel.ReleaseRitualMaterial(g) end
2835:
2836: ---返回玩家player可用的用于融合召唤素材的卡片组
2837: ---@return Group material_all 包含受EFFECT_EXTRA_FUSION_MATERIAL影响的卡
2838: ---@return Group material_base 只取那些区域的卡
2839: ---@param player integer
2840: ---@param location? integer default: LOCATION_HAND + LOCATION_MZONE
2841: function Duel.GetFusionMaterial(player,location) end
2842:
2843: ---返回当前进行特殊召唤的行为是否可以回滚并撤销。
2844: ---@return boolean
2845: function Duel.IsSummonCancelable() end
2846:
2847: ---设置Duel.CheckWithSum,Group.CheckSubGroup等函数已选择/必须选择的卡片
2848: ---@param cards Card|Group
2849: function Duel.SetSelectedCard(cards) end
2850:
2851: ---清空并返回由Duel.SetSelectedCard设置的卡片或卡片组。
2852: ---@return Group
2853: function Duel.GrabSelectedCard() end
2854:
2855: ---把当前正在处理的连锁的对象设置成targets
2856: ---注,这里的对象指的的广义的对象,包括不取对象的效果可能要处理的对象
2857: ---@param targets Card|Group
2858: function Duel.SetTargetCard(targets) end
2859:
2860: ---把当前正在处理的连锁的对象全部清除
2861: function Duel.ClearTargetCard() end
2862:
2863: ---把当前正在处理的连锁的对象玩家设置成player
2864: ---@param player integer
2865: function Duel.SetTargetPlayer(player) end
2866:
2867: ---把当前正在处理的连锁的对象参数设置成param
2868: ---@param param integer
2869: function Duel.SetTargetParam(param) end
2870:
2871: ---设置当前处理的连锁的操作信息此操作信息包含了效果处理中确定要处理的效果分类
2872: ---比如潜行狙击手需要设置CATEGORY_DICE,但是不能设置CATEGORY_DESTROY,因为不确定
2873: ---对于破坏效果,targets需要设置成发动时可能成为连锁的影响对象的卡,
2874: ---并设置count为发动时确定的要处理的卡的数量
2875: ---比如黑洞发动时,targets需要设定为场上的所有怪兽,count设置成场上的怪的数量
2876: ---对于需要移动卡片位置的CATEGORY_SPECIAL_SUMMON,CATEGORY_TOHAND,CATEGORY_TODECK等分类,
2877: ---如果要处理的卡是确定的(比如取对象),则设置targets为这些卡,count为数量,
2878: ---如果要处理的卡是不确定的(效果处理时才能确定,一般是不取对象的效果),
2879: --- 则设置targets为nil,count为预计要处理的卡的数量,
2880: --- target_player为预计要处理的卡的持有者(不确定就为0)
2881: --- target_param为预计要处理的卡的位置
2882: ---例如增援:SetOperationInfo(0,CATEGORY_TOHAND,nil,1,tp,LOCATION_DECK)
2883: ---操作信息用于很多效果的发动的检测,例如星尘龙,王家长眠之谷等
2884: ---@param chainc integer
2885: ---@param category integer
2886: ---@param targets Card|Group|nil|0
2887: ---@param count integer
2888: ---@param target_player integer
2889: ---@param target_param integer
2890: function Duel.SetOperationInfo(chainc,category,targets,count,target_player,target_param) end
2891:
2892: ---返回连锁chainc的category分类的操作信息,存在的话,则返回值为5个, chainc=0 则是表示当前连锁
2893: ---第一个返回值是false的话表示不存在该分类
2894: ---后4个返回值对应Duel.SetOperationInfo的后4个参数:Card|Group targets, int count, int target_player, int target_param
2895: ---@return boolean
554fa89569 2024-06-28 2896: ---@return Group|nil
554fa89569 2024-06-28 2897: ---@return integer|nil
554fa89569 2024-06-28 2898: ---@return integer|nil
554fa89569 2024-06-28 2899: ---@return integer|nil
2900: ---@param chainc integer
2901: ---@param category integer
2902: function Duel.GetOperationInfo(chainc,category) end
2903:
2904: ---返回连锁chainc包含的操作分类的数量
2905: ---@return integer
2906: ---@param chainc integer
2907: function Duel.GetOperationCount(chainc) end
2908:
2909: ---将chainc的OperationInfo清除。用于如堕天使复制并使用墓地效果之类,卡片效果不应当被响应的情况。
2910: ---@param chainc integer
2911: function Duel.ClearOperationInfo(chainc) end
2912:
2913: ---检查场上[或mg中]是否存在XYZ召唤c的XYZ用等级为lv的min-max个满足条件f的叠放素材
2914: ---@return boolean
2915: ---@param c Card
2916: ---@param f function|nil
2917: ---@param lv integer
2918: ---@param min integer
2919: ---@param max integer
2920: ---@param mg Group|nil
2921: function Duel.CheckXyzMaterial(c,f,lv,min,max,mg) end
2922:
2923: ---让玩家player为XYZ怪兽c从场上[或mg中]选择XYZ用等级为lv的min-max个满足条件f的叠放素材
2924: ---@return Group
2925: ---@param player integer
2926: ---@param c Card
2927: ---@param f function|nil
2928: ---@param lv integer
2929: ---@param min integer
2930: ---@param max integer
2931: ---@param mg? Group|nil
2932: function Duel.SelectXyzMaterial(player,c,f,lv,min,max,mg) end
2933:
2934: ---把ocard作为c的叠放卡叠放
2935: ---@param c Card
2936: ---@param ocard Card|Group
2937: ---@param adjust? boolean default: true
2938: function Duel.Overlay(c,ocard,adjust) end
2939:
2940: ---返回以player来看的指定位置的所有叠放的卡
2941: ---s代表以player来看的自己的位置,o代表以player来看的对方的位置
2942: ---@return Group
2943: ---@param player integer
2944: ---@param s integer
2945: ---@param o integer
2946: function Duel.GetOverlayGroup(player,s,o) end
2947:
2948: ---返回以player来看的指定位置的所有叠放的卡的数量
2949: ---s代表以player来看的自己的位置,o代表以player来看的对方的位置
2950: ---@return integer
2951: ---@param player integer
2952: ---@param s integer
2953: ---@param o integer
2954: function Duel.GetOverlayCount(player,s,o) end
2955:
2956: ---检查player能否以原因reason移除以player来看的指定位置至少count张卡
2957: ---s代表以player来看的自己的位置,o代表以player来看的对方的位置
2958: ---@return boolean
2959: ---@param player integer
2960: ---@param s integer
2961: ---@param o integer
2962: ---@param count integer
2963: ---@param reason integer
2964: function Duel.CheckRemoveOverlayCard(player,s,o,count,reason) end
2965:
2966: ---让player以reason原因移除以player来看的指定位置的min-max张叠放卡,返回值表示是否成功
2967: ---s代表以player来看的自己的位置,o代表以player来看的对方的位置
2968: ---@return integer
2969: ---@param player integer
2970: ---@param s integer
2971: ---@param o integer
2972: ---@param min integer
2973: ---@param max integer
2974: ---@param reason integer
2975: function Duel.RemoveOverlayCard(player,s,o,min,max,reason) end
2976:
2977: ---给玩家player发送hint_type类型的消息提示,提示内容为desc
2978: ---@param hint_type integer
2979: ---@param player integer
2980: ---@param desc integer
2981: function Duel.Hint(hint_type,player,desc) end
2982:
2983: ---手动为g显示被选为对象的动画效果
2984: ---@param g Group
2985: function Duel.HintSelection(g) end
2986:
2987: ---让玩家player选择是否发动卡片c的效果[提示文字可以自行用desc替换,desc 用 aux.Stringid 获取]
2988: ---@return boolean
2989: ---@param player integer
2990: ---@param c Card
2991: ---@param desc? integer default: 95
2992: function Duel.SelectEffectYesNo(player,c,desc) end
2993:
2994: ---让玩家player选择是或否
2995: ---@return boolean
2996: ---@param player integer
2997: ---@param desc integer
2998: function Duel.SelectYesNo(player,desc) end
2999:
3000: ---让玩家选择选项,从第二个参数开始,每一个参数代表一条选项
3001: ---返回选择的选项的序号(从0开始)
3002: ---@return integer
3003: ---@param player integer
3004: ---@param desc1 integer
3005: ---@param ... any
3006: function Duel.SelectOption(player,desc1,...) end
3007:
3008: ---此函数只有一个 check_action_permission 操作,不知何用
3009: function Duel.SelectSequence() end
3010:
3011: ---让玩家player选择c的表示形式并返回
3012: ---@return integer
3013: ---@param player integer
3014: ---@param c Card
3015: ---@param pos integer
3016: function Duel.SelectPosition(player,c,pos) end
3017:
3018: ---让玩家player选择场地。
3019: ---@return integer
3020: ---@param player integer
3021: ---@param count integer
3022: ---@param loc1 integer
3023: ---@param loc2 integer
3024: ---@param zone integer
3025: ---@param code? integer
3026: function Duel.SelectField(player,count,loc1,loc2,zone,code) end
3027:
3028: ---让玩家player选择指定位置满足标记条件filter的count个可用的空格,并返回选择位置的标记
3029: ---常用于选择区域不能使用或移动怪兽格子
3030: ---##位置标记的定义如下
3031: ---##flag = 0;
3032: ---##seq为在玩家p,位置l中选择的格子序号
3033: ---##for(int32 i = 0; i < count; ++i) {
3034: ---## flag |= 1 << (seq[i] + (p[i] == player ? 0 : 16) + (l[i] == LOCATION_MZONE ? 0 : 8));
3035: ---##}
3036: ---@return integer
3037: ---@param player integer
3038: ---@param count integer
3039: ---@param s integer
3040: ---@param o integer
3041: ---@param filter integer
3042: function Duel.SelectDisableField(player,count,s,o,filter) end
3043:
3044: ---让玩家player从可选的种族中宣言count个种族
3045: ---available是所有可选种族的组合值,可以自行组合
3046: ---@return integer
3047: ---@param player integer
3048: ---@param count integer
3049: ---@param available integer
3050: function Duel.AnnounceRace(player,count,available) end
3051:
3052: ---让玩家player从可选的属性中宣言count个属性
3053: ---available是所有可选属性的组合值,可以自行组合
3054: ---@return integer
3055: ---@param player integer
3056: ---@param count integer
3057: ---@param available integer
3058: function Duel.AnnounceAttribute(player,count,available) end
3059:
3060: ---让玩家宣言一个[min-max]等级并返回
3061: ---@return integer
3062: ---@param player integer
3063: ---@param min? integer|nil default: 1
3064: ---@param max? integer|nil default: 12
3065: ---@param ...? integer
3066: function Duel.AnnounceLevel(player,min,max,...) end
3067:
3068: ---让玩家player宣言一个满足条件的卡片卡号,条件用后缀表达式...表示
3069: ---原名AnnounceCardFilter
3070: ---@return integer
3071: ---@param player integer
3072: ---@param ...? integer
3073: function Duel.AnnounceCard(player,...) end
3074:
3075: ---让玩家player宣言一个卡片类型(怪兽·魔法·陷阱)
3076: ---别想着直接宣言 复合类型(永续魔法 等)
3077: ---@return integer
3078: ---@param player integer
3079: function Duel.AnnounceType(player) end
3080:
3081: ---让玩家player宣言一个数字
3082: ---从第二个参数开始,每一个参数代表一个可宣言的数字
3083: ---第一个返回值是宣言的数字,第二个返回值是宣言数字在所有选项中的位置
3084: ---@return integer
3085: ---@return integer
3086: ---@param player integer
3087: ---@param number integer
3088: ---@param ... any
3089: function Duel.AnnounceNumber(player,number,...) end
3090:
3091: ---让玩家player宣言硬币的正反面
3092: ---@return integer
3093: ---@param player integer
3094: function Duel.AnnounceCoin(player) end
3095:
3096: ---让玩家player投count(<=20)次硬币,返回值为count个结果,0或者1, 正面是 1,反面是0
3097: ---若count=-1,投硬币直到出现反面,返回值为投掷次数
3098: ---@return ...
3099: ---@param player integer
3100: ---@param count integer
3101: function Duel.TossCoin(player,count) end
3102:
3103: ---让玩家player投count1次骰子[,1-player投count2次骰子](count1+count2<=5)
3104: ---返回值为count1+count2个结果,1-6
3105: ---@return ...
3106: ---@param player integer
3107: ---@param count1 integer
3108: ---@param count2? integer
3109: function Duel.TossDice(player,count1,count2) end
3110:
3111: ---猜拳,若 repeated=false 则只猜一次;否则就是直到分出胜负为止。返回胜利的玩家号码
3112: ---@return integer
3113: ---@param repeated? boolean default: true
3114: function Duel.RockPaperScissors(repeated) end
3115:
3116: ---返回当前投硬币的结果
3117: ---@return integer
3118: ---@return integer
3119: ---@return integer
3120: ---@return integer
3121: ---@return integer
3122: function Duel.GetCoinResult() end
3123:
3124: ---返回当前掷骰子的结果
3125: ---@return integer
3126: ---@return integer
3127: ---@return integer
3128: ---@return integer
3129: ---@return integer
3130: function Duel.GetDiceResult() end
3131:
3132: ---强行修改投硬币的结果为res ,最多5个参数,res只能是 0 或 1, ,其他全算作 0
3133: ---此函数用于永续的EVENT_TOSS_COIN事件中
3134: ---@param res integer
3135: ---@param ... any
3136: function Duel.SetCoinResult(res,...) end
3137:
3138: ---强行修改投骰子的结果为res ,最多5个参数,res只能是 1~255, ,其他数字全算作 1
3139: ---此函数用于永续的EVENT_TOSS_DICE事件中
3140: ---@param res integer
3141: ---@param ... any
3142: function Duel.SetDiceResult(res,...) end
3143:
3144: ---检查player是否受到种类为code的效果影响,如果有就返回该效果,没有则返回nil
3145: ---@return Effect|nil
3146: ---@return ...
3147: ---@param player integer
3148: ---@param code integer
3149: function Duel.IsPlayerAffectedByEffect(player,code) end
3150:
3151: ---检查玩家player是否可以效果抽[count张]卡
3152: ---@return boolean
3153: ---@param player integer
3154: ---@param count? integer default: 0
3155: function Duel.IsPlayerCanDraw(player,count) end
3156:
3157: ---检查玩家player是否可以把卡组顶端count张卡送去墓地
3158: ---@return boolean
3159: ---@param player integer
3160: ---@param count integer
3161: function Duel.IsPlayerCanDiscardDeck(player,count) end
3162:
3163: ---检查玩家player是否能作为Cost把count张卡送去墓地。
3164: ---@return boolean
3165: ---@param player integer
3166: ---@param count integer
3167: function Duel.IsPlayerCanDiscardDeckAsCost(player,count) end
3168:
3169: ---检查玩家player是否可以通常召唤[c,以sumtype方式]
3170: ---如果需要可选参数,则必须全部使用
3171: ---仅当玩家收到“不能上级召唤”等效果的影响时返回false
3172: ---@return boolean
3173: ---@param player integer
3174: ---@param sumtype? integer
3175: ---@param c? Card
3176: function Duel.IsPlayerCanSummon(player,sumtype,c) end
3177:
3178: ---检查玩家player是否可以[以sumtype的召唤方式将scard]盖放。
3179: ---如果要加入后面的可选参数,则所有两个可选参数都必须加上。
3180: ---@return boolean
3181: ---@param player integer
3182: ---@param sumtype? integer
3183: ---@param scard? Card
3184: function Duel.IsPlayerCanMSet(player,sumtype,scard) end
3185:
3186: ---检查玩家player是否可以[将scard]盖放。
3187: ---@return boolean
3188: ---@param player integer
3189: ---@param scard? Card
3190: function Duel.IsPlayerCanSSet(player,scard) end
3191:
3192: ---检查玩家player能否特殊召唤[c到target_player场上,以sumtype召唤方式,sumpos表示形式]
3193: ---如果需要可选参数,则必须全部使用
3194: ---@return boolean
3195: ---@param player integer
3196: ---@param sumtype? integer
3197: ---@param sumpos? integer
3198: ---@param target_player? integer
3199: ---@param c? Card
3200: function Duel.IsPlayerCanSpecialSummon(player,sumtype,sumpos,target_player,c) end
3201:
3202: ---检查玩家player是否可以反转召唤c
3203: ---@return boolean
3204: ---@param player integer
3205: ---@param c Card
3206: function Duel.IsPlayerCanFlipSummon(player,c) end
3207:
3208: ---检查玩家player是否可以[以sumtype 方式][以 pos 表示形式]特殊召唤 给定参数的怪兽到target_player场上
3209: ---此函数通常用于判定是否可以特招token和陷阱怪兽
3210: ---@return boolean
3211: ---@param player integer
3212: ---@param code integer
3213: ---@param setcode? integer|nil
3214: ---@param type? integer|nil
3215: ---@param atk? integer|nil
3216: ---@param def? integer|nil
3217: ---@param level? integer|nil
3218: ---@param race? integer|nil
3219: ---@param attribute? integer|nil
3220: ---@param pos? integer default: POS_FACEUP
3221: ---@param target_player? integer default: player
3222: ---@param sumtype? integer default: 0
3223: ---@param zone? integer
3224: function Duel.IsPlayerCanSpecialSummonMonster(player,code,setcode,type,atk,def,level,race,attribute,pos,target_player,sumtype,zone) end
3225:
3226: ---检查玩家player能否特殊召唤count次
3227: ---@return boolean
3228: ---@param player integer
3229: ---@param count integer
3230: function Duel.IsPlayerCanSpecialSummonCount(player,count) end
3231:
3232: ---检查玩家player是否能解放[以原因reason解放c]
3233: ---@return boolean
3234: ---@param player integer
3235: ---@param c? Card
3236: ---@param reason? integer default: REASON_COST
3237: function Duel.IsPlayerCanRelease(player,c,reason) end
3238:
3239: ---检查玩家player是否能除外c
3240: ---@return boolean
3241: ---@param player integer
3242: ---@param c? Card
3243: function Duel.IsPlayerCanRemove(player,c) end
3244:
3245: ---检查玩家是否能把c送去手卡
3246: ---@return boolean
3247: ---@param player integer
3248: ---@param c Card
3249: function Duel.IsPlayerCanSendtoHand(player,c) end
3250:
3251: ---检查玩家是否能把c送去墓地
3252: ---@return boolean
3253: ---@param player integer
3254: ---@param c? Card
3255: function Duel.IsPlayerCanSendtoGrave(player,c) end
3256:
3257: ---检查玩家是否能把c送去卡组
3258: ---@return boolean
3259: ---@param player integer
3260: ---@param c Card
3261: function Duel.IsPlayerCanSendtoDeck(player,c) end
3262:
3263: ---检查玩家player是否有通常召唤外的召唤次数。
3264: ---@return boolean
3265: ---@param player integer
3266: function Duel.IsPlayerCanAdditionalSummon(player) end
3267:
3268: ---检查连锁chainc的发动能否被无效
3269: ---@return boolean
3270: ---@param chainc integer
3271: function Duel.IsChainNegatable(chainc) end
3272:
3273: ---检查连锁chainc的效果能否被无效
3274: ---@return boolean
3275: ---@param chainc integer
3276: function Duel.IsChainDisablable(chainc) end
3277:
3278: ---检查连锁chainc是否已被无效
3279: ---@return boolean
3280: ---@param chainc integer
3281: function Duel.IsChainDisabled(chainc) end
3282:
3283: ---检查c是否是连锁chainc的效果的正确的对象
3284: ---@return boolean
3285: ---@param chainc integer
3286: ---@param c Card
3287: function Duel.CheckChainTarget(chainc,c) end
3288:
3289: ---检查当前连锁中是否存在同名卡的发动,返回true表示无同名卡
3290: ---@return boolean
3291: function Duel.CheckChainUniqueness() end
3292:
3293: ---返回player进行对应的activity_type操作的次数
3294: ---@return integer
3295: ---@return ...
3296: ---@param player integer
3297: ---@param activity_type integer
3298: ---@param ... any
3299: function Duel.GetActivityCount(player,activity_type,...) end
3300:
3301: ---检查玩家在当前阶段是否有操作(是否处于阶段开始时,如七皇之剑)
3302: ---@return boolean
3303: function Duel.CheckPhaseActivity() end
3304:
3305: ---设置操作类型为activity_type、代号为counter_id的计数器,放在initial_effect函数内
3306: ---f为过滤函数,以Card类型为参数,返回值为false的卡片进行以下类型的操作,计数器增加1(目前最多为1)
3307: ---@param counter_id integer
3308: ---@param activity_type integer
3309: ---@param f function
3310: function Duel.AddCustomActivityCounter(counter_id,activity_type,f) end
3311:
3312: ---代号为counter_id的计数器的计数,返回player进行以下操作的次数(目前最多为1)
3313: ---@return integer
3314: ---@param counter_id integer
3315: ---@param player integer
3316: ---@param activity_type integer
3317: function Duel.GetCustomActivityCount(counter_id,player,activity_type) end
3318:
3319: ---返回玩家player这回合战斗过的次数
3320: ---@return integer
3321: ---@param player integer
3322: function Duel.GetBattledCount(player) end
3323:
3324: ---检查回合玩家能否进入战斗阶段
3325: ---@return boolean
3326: function Duel.IsAbleToEnterBP() end
3327:
3328: ---现世与冥界的逆转专用。把玩家player的卡组和墓地交换
3329: ---@param player integer
3330: function Duel.SwapDeckAndGrave(player) end
3331:
3332: ---救世星龙专用。把c2记述的效果复制给c1
3333: ---强制发动的效果可以选择是否发动
3334: ---@param c1 Card
3335: ---@param c2 Card
3336: function Duel.MajesticCopy(c1,c2) end
3337:
3338: ---新建一个空效果
3339: ---并且效果的Owner为c
3340: ---@return Effect
3341: ---@param c Card
3342: function Effect.CreateEffect(c) end
3343:
3344: ---新建一个全局效果
3345: ---@return Effect
3346: function Effect.GlobalEffect() end
3347:
3348: ---新建一个效果e的副本
3349: ---@return Effect
3350: ---@param e Effect
3351: function Effect.Clone(e) end
3352:
3353: ---把效果e重置,重置之后不可以再使用此效果
3354: ---@param e Effect
3355: function Effect.Reset(e) end
3356:
3357: ---获取效果e的id
3358: ---@return integer
3359: ---@param e Effect
3360: function Effect.GetFieldID(e) end
3361:
3362: ---为效果e设置效果描述
3363: ---@param e Effect
3364: ---@param desc integer
3365: function Effect.SetDescription(e,desc) end
3366:
3367: ---为效果e设置Code属性
3368: ---@param e Effect
3369: ---@param code integer
3370: function Effect.SetCode(e,code) end
3371:
3372: ---为效果e设置Range属性,即e的生效位置
3373: ---@param e Effect
3374: ---@param range integer
3375: function Effect.SetRange(e,range) end
3376:
3377: ---为效果e设置Target Range属性
3378: --- s_range指影响的我方区域
3379: --- o_range值影响的对方区域
3380: --- 如果property属性中指定了EFFECT_FLAG_ABSOLUTE_RANGE标志,
3381: --- 那么s_range指玩家1受到影响的区域,o_range指玩家2受到影响的区域
3382: --- 如果这是一个召唤(覆盖)/限制召唤(覆盖)/特殊召唤手续
3383: --- (EFFECT_SUMMON_PROC/EFFECT_LIMIT_SUMMON_PROC/EFFECT_SPSUMMON_PROC等)的效果,
3384: --- 并且property指定了EFFECT_FLAG_SPSUM_PARAM标志,
3385: --- 那么s_range表示特殊召唤到的哪个玩家的场地,
3386: --- o_range表示可选择的表示形式
3387: ---@param e Effect
3388: ---@param s_range integer
3389: ---@param o_range integer
3390: function Effect.SetTargetRange(e,s_range,o_range) end
3391:
3392: ---设置target range属性并设置 EFFECT_FLAG_ABSOLUTE_TARGET 标志
3393: --- playerid != 0 s_range和o_range反转
3394: ---@param e Effect
3395: ---@param playerid integer
3396: ---@param s_range integer
3397: ---@param o_range integer
3398: function Effect.SetAbsoluteRange(e,playerid,s_range,o_range) end
3399:
3400: ---设置一回合可以发动的次数count(仅触发型效果有效),相同的code(不等于0或1时)共用1个次数
3401: ---code包含以下数值具有特殊的性质
3402: ---EFFECT_COUNT_CODE_OATH 誓约使用次数
3403: ---EFFECT_COUNT_CODE_DUEL 决斗中使用次数
3404: ---EFFECT_COUNT_CODE_SINGLE 同一张卡多个效果公共使用次数(不限制同名卡)
3405: ---@param e Effect
3406: ---@param count integer default: 1
3407: ---@param code? integer default: 0
3408: function Effect.SetCountLimit(e,count,code) end
3409:
3410: ---设置reset参数
3411: ---@param e Effect
3412: ---@param reset_flag integer
3413: ---@param reset_count? integer default: 1
3414: function Effect.SetReset(e,reset_flag,reset_count) end
3415:
3416: ---为效果e设置Type属性
3417: ---@param e Effect
3418: ---@param type integer
3419: function Effect.SetType(e,type) end
3420:
3421: ---设置Property属性
3422: ---@param e Effect
3423: ---@param prop1 integer
3424: ---@param prop2? integer
3425: function Effect.SetProperty(e,prop1,prop2) end
3426:
3427: ---设置Label属性
3428: ---@param e Effect
3429: ---@param ... integer
3430: function Effect.SetLabel(e,...) end
3431:
3432: ---设置LabelObject属性
3433: ---@param e Effect
3434: ---@param labelobject Card|Group|Effect
3435: function Effect.SetLabelObject(e,labelobject) end
3436:
3437: ---设置Category属性
3438: ---@param e Effect
3439: ---@param cate integer
3440: function Effect.SetCategory(e,cate) end
3441:
3442: ---设置提示时点,第二个和第三个参数分别表示 自己 和对方的回合
3443: ---@param e Effect
3444: ---@param s_time integer
3445: ---@param o_time? integer default: s_time
3446: function Effect.SetHintTiming(e,s_time,o_time) end
3447:
3448: ---设置Condition属性
3449: ---@param e Effect
3450: ---@param con_func function
3451: function Effect.SetCondition(e,con_func) end
3452:
3453: ---设置Target属性
3454: ---@param e Effect
3455: ---@param targ_func function
3456: function Effect.SetTarget(e,targ_func) end
3457:
3458: ---设置Cost属性
3459: ---@param e Effect
3460: ---@param cost_func function
3461: function Effect.SetCost(e,cost_func) end
3462:
3463: ---设置Value属性
3464: ---@param e Effect
3465: ---@param val function|integer|boolean
3466: function Effect.SetValue(e,val) end
3467:
3468: ---设置Operation属性
3469: ---@param e Effect
3470: ---@param op_func nil|function
3471: function Effect.SetOperation(e,op_func) end
3472:
3473: ---设置OwnerPlayer属性为player
3474: ---@param e Effect
3475: ---@param player? integer default: 0
3476: function Effect.SetOwnerPlayer(e,player) end
3477:
3478: ---返回效果描述
3479: ---@return integer
3480: ---@param e Effect
3481: function Effect.GetDescription(e) end
3482:
3483: ---返回code属性
3484: ---@return integer
3485: ---@param e Effect
3486: function Effect.GetCode(e) end
3487:
3488: ---返回Type属性
3489: ---@return integer
3490: ---@param e Effect
3491: function Effect.GetType(e) end
3492:
3493: ---返回Property属性
3494: ---@return integer
3495: ---@return integer
3496: ---@param e Effect
3497: function Effect.GetProperty(e) end
3498:
3499: ---返回Label属性
3500: ---@return ... integer
3501: ---@param e Effect
3502: function Effect.GetLabel(e) end
3503:
3504: ---返回LabelObject属性
3505: ---@return Card|Group|Effect
3506: ---@param e Effect
3507: function Effect.GetLabelObject(e) end
3508:
3509: ---返回Category属性
3510: ---@return integer
3511: ---@param e Effect
3512: function Effect.GetCategory(e) end
3513:
3514: ---返回Owner属性
3515: ---@return Card
3516: ---@param e Effect
3517: function Effect.GetOwner(e) end
3518:
3519: ---返回效果在哪一张卡上生效(通常是用Card.RegisterEffect注册该效果的卡)
3520: ---@return Card
3521: ---@param e Effect
3522: function Effect.GetHandler(e) end
3523:
3524: ---返回condition属性
3525: ---@return function
3526: ---@param e Effect
3527: function Effect.GetCondition(e) end
3528:
3529: ---返回target属性
3530: ---@return function
3531: ---@param e Effect
3532: function Effect.GetTarget(e) end
3533:
3534: ---返回cost属性
3535: ---@return function
3536: ---@param e Effect
3537: function Effect.GetCost(e) end
3538:
3539: ---返回value属性
3540: ---@return function|integer
3541: ---@param e Effect
3542: function Effect.GetValue(e) end
3543:
3544: ---返回operation属性
3545: ---@return function
3546: ---@param e Effect
3547: function Effect.GetOperation(e) end
3548:
3549: ---返回e的效果类型(怪兽·魔法·陷阱)
3550: ---与发动该效果的卡的类型不一定相同,比如灵摆效果视为魔法卡的效果
3551: ---@return integer
3552: ---@param e Effect
3553: function Effect.GetActiveType(e) end
3554:
3555: ---检查e的效果类型(怪兽·魔法·陷阱)是否有type
3556: ---@return boolean
3557: ---@param e Effect
3558: ---@param type integer
3559: function Effect.IsActiveType(e,type) end
3560:
3561: ---返回OwnerPlayer属性(发动效果、建立效果的玩家)
3562: ---若無OwnerPlayer属性,则是Owner的控制者
3563: ---@return integer
3564: ---@param e Effect
3565: function Effect.GetOwnerPlayer(e) end
3566:
3567: ---返回当前玩家,一般是Handler的控制者
3568: ---@return integer
3569: ---@param e Effect
3570: function Effect.GetHandlerPlayer(e) end
3571:
3572: ---检查效果是否含有标志prop1[和prop2]
3573: ---@return boolean
3574: ---@param e Effect
3575: ---@param prop1 integer
3576: ---@param prop2? integer
3577: function Effect.IsHasProperty(e,prop1,prop2) end
3578:
3579: ---检查效果是否含有效果分类cate
3580: ---@return boolean
3581: ---@param e Effect
3582: ---@param cate integer
3583: function Effect.IsHasCategory(e,cate) end
3584:
3585: ---检查效果是否属于类型type
3586: ---@return boolean
3587: ---@param e Effect
3588: ---@param type integer
3589: function Effect.IsHasType(e,type) end
3590:
3591: ---检查效果e能否由player发动
3592: ---neglect_loc=true 为不检测发动位置(手卡), neglect_target=true 为不检测对象要求
3593: ---@return boolean
3594: ---@param e Effect
3595: ---@param player integer
3596: ---@param neglect_loc? boolean default: false
3597: ---@param neglect_target? boolean default: false
3598: function Effect.IsActivatable(e,player,neglect_loc,neglect_target) end
3599:
3600: ---检查效果e是否是已发动的效果
3601: ---@return boolean
3602: ---@param e Effect
3603: function Effect.IsActivated(e) end
3604:
3605: ---检查效果e是否检查过cost,即是否是被复制的
3606: ---@return boolean
3607: ---@param e Effect
3608: function Effect.IsCostChecked(e) end
3609:
3610: ---设置效果e的cost检查标记为b
3611: ---@param e Effect
3612: ---@param b boolean
3613: function Effect.SetCostCheck(e,b) end
3614:
3615: ---返回效果e的发动区域
3616: ---@return integer
3617: ---@param e Effect
3618: function Effect.GetActivateLocation(e) end
3619:
3620: ---返回效果e的发动区域序号
3621: ---@return integer
3622: ---@param e Effect
3623: function Effect.GetActivateSequence(e) end
3624:
3625: ---检测玩家 p 是否还有可以发动的效果 e 的次数
3626: ---@return boolean
3627: ---@param e Effect
3628: ---@param p integer
3629: function Effect.CheckCountLimit(e,p) end
3630:
3631: ---手动减少玩家 p 对效果 e 的 count 个可用次数[ oath_only 为 该效果是否是 EFFECT_FLAG_OATH]
3632: ---@param e Effect
3633: ---@param p integer
3634: ---@param count? integer default: 1
3635: ---@param oath_only? boolean default: false
3636: function Effect.UseCountLimit(e,p,count,oath_only) end
3637:
3638: ---@class Group
3639: ---@operator add(Group|Card): Group
3640:
3641: ---@class Group
3642: ---@operator sub(Group|Card): Group
3643:
3644: ---新建一个空的卡片组
3645: ---@return Group
3646: function Group.CreateGroup() end
3647:
3648: ---让卡片组持续,把卡片组设置为效果的LabelObject需要设置
3649: ---@param g Group
3650: function Group.KeepAlive(g) end
3651:
3652: ---删除卡片组g
3653: ---@param g Group
3654: function Group.DeleteGroup(g) end
3655:
3656: ---新建卡片组g的副本
3657: ---@return Group
3658: ---@param g Group
3659: function Group.Clone(g) end
3660:
3661: ---不定参数,把传入的所有卡组合成一个卡片组并返回,所有参数只能是 Card 类型。
3662: ---没有参数时,相当于Group.CreateGroup()
3663: ---@return Group
3664: ---@param ... Card
3665: function Group.FromCards(...) end
3666:
3667: ---清空卡片组
3668: ---@param g Group
3669: function Group.Clear(g) end
3670:
3671: ---往g中增加c
3672: ---@param g Group
3673: ---@param c Card
3674: function Group.AddCard(g,c) end
3675:
3676: ---把c从g中移除
3677: ---@param g Group
3678: ---@param c Card
3679: function Group.RemoveCard(g,c) end
3680:
3681: ---使指针指向下一张卡并返回这张卡,如果不存在则返回nil
3682: ---@return Card
3683: ---@param g Group
3684: function Group.GetNext(g) end
3685:
3686: ---返回g中第一张卡,并重置当前指针到g中第一张卡
3687: ---如果g中不存在卡则返回nil
3688: ---@return Card
3689: ---@param g Group
3690: function Group.GetFirst(g) end
3691:
3692: ---返回g中卡的数量
3693: ---@return integer
3694: ---@param g Group
3695: function Group.GetCount(g) end
3696:
3697: ---以g中的每一张卡作为参数调用一次f ,第三个参数开始为额外参数
3698: ---@param g Group
3699: ---@param f function
3700: ---@param ... any
3701: function Group.ForEach(g,f,...) end
3702:
3703: ---过滤函数,从g中筛选满足筛选条件f并且不等于ex的卡
3704: ---从第4个参数开始为额外参数
3705: ---@return Group
3706: ---@param g Group
3707: ---@param f function
3708: ---@param ex Card|Group|nil
3709: ---@param ... any
3710: function Group.Filter(g,f,ex,...) end
3711:
3712: ---过滤函数,和Group.Filter基本相同,不同之处在于此函数只返回满足条件的卡的数量
3713: ---@return integer
3714: ---@param g Group
3715: ---@param f function
3716: ---@param ex Card|Group|nil
3717: ---@param ... any
3718: function Group.FilterCount(g,f,ex,...) end
3719:
3720: ---过滤函数,让玩家player从g中选择 min-max 张满足筛选条件f并且不等于ex的卡
3721: ---从第7个参数开始为额外参数
3722: ---@return Group
3723: ---@param g Group
3724: ---@param player integer
3725: ---@param f function
3726: ---@param min integer
3727: ---@param max integer
3728: ---@param ex Card|Group|nil
3729: ---@param ... any
3730: function Group.FilterSelect(g,player,f,min,max,ex,...) end
3731:
3732: ---让玩家player从g中选择min-max张不等于ex的卡
3733: ---@return Group
3734: ---@param g Group
3735: ---@param player integer
3736: ---@param min integer
3737: ---@param max integer
3738: ---@param ex Card|Group|nil
3739: function Group.Select(g,player,min,max,ex) end
3740:
3741: ---让玩家 player 从 cg 中选择 1 张卡放入 sg ,并返回选的卡。
3742: ---btok 表示是否可以点击完成选择的按钮, cancelable 表示是否可以取消整个选择返回 nil,
3743: ---minc 和 maxc 是客户端的文字缓冲提示,表示需要选择 minc-maxc 张卡,但是这个只是影响视觉效果,并不代表必须要选择那个数量
3744: ---@return Card|nil
3745: ---@param cg Group
3746: ---@param sg Group|nil 已选的卡,可以从中取消选择
3747: ---@param player integer
3748: ---@param btok boolean default: false
3749: ---@param cancelable boolean default: false
3750: ---@param minc integer
3751: ---@param maxc integer
3752: function Group.SelectUnselect(cg,sg,player,btok,cancelable,minc,maxc) end
3753:
3754: ---让玩家player从g中随机选择count张卡
3755: ---因为是随机选择,所以参数player基本无用,由系统随机选取
3756: ---@return Group
3757: ---@param g Group
3758: ---@param player integer
3759: ---@param count integer
3760: function Group.RandomSelect(g,player,count) end
3761:
3762: ---过滤函数,检查g中是否存在至少count张满足筛选条件f并且不等于ex的卡
3763: ---从第5个参数开始为额外参数
3764: ---@return boolean
3765: ---@param g Group
3766: ---@param f function
3767: ---@param count integer
3768: ---@param ex Card|Group|nil
3769: ---@param ... any
3770: function Group.IsExists(g,f,count,ex,...) end
3771:
3772: ---子集求和判定函数,f为返回一个interger值的函数
3773: ---检查g中是否存在一个数量为min-max的子集满足以f对子集的每一个元素求值的和等于sum,从第6个参数开始为额外参数
3774: --- 比如:g:CheckWithSumEqual(Card.GetSynchroLevel,7,2,99)
3775: --- 检查g中是否存在一个子集满足子集的同调用等级之和等于7
3776: ---@return boolean
3777: ---@param g Group
3778: ---@param f function
3779: ---@param sum integer
3780: ---@param min integer default: 0
3781: ---@param max integer
3782: ---@param ... any
3783: function Group.CheckWithSumEqual(g,f,sum,min,max,...) end
3784:
3785: ---让玩家player从g中选取一个数量为min-max的子集使子集的特定函数的和等于sum,从第7个参数开始为额外参数
3786: ---@return Group
3787: ---@param g Group
3788: ---@param player integer
3789: ---@param f function
3790: ---@param sum integer
3791: ---@param min integer
3792: ---@param max integer
3793: ---@param ... any
3794: function Group.SelectWithSumEqual(g,player,f,sum,min,max,...) end
3795:
3796: ---子集求和判定函数之二,f为返回一个interger值的函数
3797: ---检查g中是否存在一个子集满足以f对子集的每一个元素求值的和刚好大于或者等于sum,从第4个参数开始为额外参数
3798: ---比如:g:CheckWithSumGreater(Card.GetRitualLevel,8)
3799: --- 检查g中是否存在一个子集满足子集的仪式用等级之和大于等于8
3800: --- 注:判定必须是“刚好”大于或者等于
3801: --- 以等级为例,要使等级合计大于等于8,可以选择LV1+LV7而不可以选择LV1+LV4+LV4
3802: ---@return boolean
3803: ---@param g Group
3804: ---@param f function
3805: ---@param sum integer
3806: ---@param ... any
3807: function Group.CheckWithSumGreater(g,f,sum,...) end
3808:
3809: ---让玩家player从g中选取一个子集使子集的特定函数f的和大于等于sum,从第5个参数开始为额外参数
3810: ---@return Group
3811: ---@param g Group
3812: ---@param player integer
3813: ---@param f function
3814: ---@param sum integer
3815: ---@param ... any
3816: function Group.SelectWithSumGreater(g,player,f,sum,...) end
3817:
3818: ---f为返回一个interger值的函数,从g中筛选出具有最小的f的值的卡
3819: ---第2个返回值为这个最小值,从第3个参数开始为额外参数
3820: ---要使用第2个返回值注意检查g非空
3821: ---@return Group
3822: ---@return integer
3823: ---@param g Group
3824: ---@param f function
3825: ---@param ... any
3826: function Group.GetMinGroup(g,f,...) end
3827:
3828: ---f为返回一个interger值的函数,从g中筛选出具有最大的f的值的卡
3829: ---第2个返回值为这个最大值,从第3个参数开始为额外参数
3830: ---要使用第2个返回值注意检查g非空
3831: ---@return Group
3832: ---@return integer
3833: ---@param g Group
3834: ---@param f function
3835: ---@param ... any
3836: function Group.GetMaxGroup(g,f,...) end
3837:
3838: ---计算g中所有卡的取值的总和,f为为每张卡的取值函数,从第3个参数开始为额外参数
3839: ---@return integer
3840: ---@param g Group
3841: ---@param f function
3842: ---@param ... any
3843: function Group.GetSum(g,f,...) end
3844:
3845: ---计算g中所有卡的种类数量,f为分类的依据,返回相同的值视为同一种类,从第3个参数开始为额外参数
3846: ---比如 g:GetClassCount(Card.GetCode()) 就是计算g中卡名不同的卡的数量
3847: ---@return integer
3848: ---@param g Group
3849: ---@param f function
3850: ---@param ... any
3851: function Group.GetClassCount(g,f,...) end
3852:
3853: ---从g中移除满足筛选条件f并且不等于ex的所有卡,第4个参数开始是额外参数
3854: ---@param g Group
3855: ---@param f function
3856: ---@param ex Card|nil
3857: ---@param ... any
3858: function Group.Remove(g,f,ex,...) end
3859:
3860: ---把g2中的所有卡合并到g1,若g1中原本就有属于g2的卡,那些卡将不会重复
3861: ---注:g2本身不会发生变化
3862: ---@param g1 Group
3863: ---@param g2 Group
3864: function Group.Merge(g1,g2) end
3865:
3866: ---从g1中移除属于g2中的卡
3867: ---注:g2本身不会发生变化
3868: ---@param g1 Group
3869: ---@param g2 Group
3870: function Group.Sub(g1,g2) end
3871:
3872: ---判断g1和g2是否相同
3873: ---@return boolean
3874: ---@param g1 Group
3875: ---@param g2 Group
3876: function Group.Equal(g1,g2) end
3877:
3878: ---检查g中是否存在卡片c
3879: ---@return boolean
3880: ---@param g Group
3881: ---@param c Card
3882: function Group.IsContains(g,c) end
3883:
3884: ---过滤函数,返回g中满足筛选条件f的第一张卡,若没有则返回nil,从第3个参数开始为额外参数
3885: ---@return Card
3886: ---@param g Group
3887: ---@param f function
3888: ---@param ... any
3889: function Group.SearchCard(g,f,...) end
3890:
3891: ---和 Group.GetClassCount 类似,但是算法不同(使用位运算)
3892: ---@return integer
3893: ---@param g Group
3894: ---@param f function
3895: ---@param ... any
3896: function Group.GetBinClassCount(g,f,...) end
3897:
3898: ---显示消息。
3899: ---注意,只会在本地生效,在服务器端不会生效。
3900: ---@param msg any
3901: function Debug.Message(msg) end
3902:
3903: ---添加卡片,将卡号为code的卡片的持有者设置为owner,以表示形式pos放置在player的场上位于location上序号为seq的格子处
3904: ---proc=true则完成正规召唤程序(即解除苏生限制)
3905: ---@return Card
3906: ---@param code integer
3907: ---@param owner integer
3908: ---@param player integer
3909: ---@param location integer
3910: ---@param seq integer
3911: ---@param pos integer
3912: ---@param proc? boolean default: false
3913: function Debug.AddCard(code,owner,player,location,seq,pos,proc) end
3914:
3915: ---设置玩家信息,基本分为lp,初始手卡为startcount张,每回合抽drawcount张
3916: ---在残局当中, playerid :自己=0,对方=1
3917: ---@param playerid integer
3918: ---@param lp integer
3919: ---@param startcount integer
3920: ---@param drawcount integer
3921: function Debug.SetPlayerInfo(playerid,lp,startcount,drawcount) end
3922:
3923: ---设置卡片c的召唤信息:以 sum_type 方法(通常召唤、特殊召唤等)[从 sum_location]出场
3924: ---@param c Card
3925: ---@param sum_type integer
3926: ---@param sum_location? integer default: 0
3927: function Debug.PreSummon(c,sum_type,sum_location) end
3928:
3929: ---为target添加装备equip_card ,返回值表示是否成功
3930: ---@return boolean
3931: ---@param equip_card Card
3932: ---@param target Card
3933: function Debug.PreEquip(equip_card,target) end
3934:
3935: ---把target选为c的永续对象
3936: ---@param c Card
3937: ---@param target Card
3938: function Debug.PreSetTarget(c,target) end
3939:
3940: ---为c添加count个counter_type的指示物
3941: ---@param c Card
3942: ---@param counter_type integer
3943: ---@param count? integer default: 0
3944: function Debug.PreAddCounter(c,counter_type,count) end
3945:
3946: ---以选项flag开始布局
3947: --- flag 残局: DUEL_ATTACK_FIRST_TURN+DUEL_SIMPLE_AI
3948: --- 大师规则1: DUEL_OBSOLETE_RULING
3949: --- rule=5 是大师规则2020
3950: ---@param flag integer
3951: ---@param rule? integer default: 5
3952: function Debug.ReloadFieldBegin(flag,rule) end
3953:
3954: ---布局结束
3955: function Debug.ReloadFieldEnd() end
3956:
3957: ---设置AI的名字,最大长度 100 个字符(1个汉字2个字符)
3958: ---@param name string
3959: function Debug.SetAIName(name) end
3960:
3961: ---显示消息提示框,最大长度 1024 个字符(1个汉字2个字符)
3962: ---注意,只会在本地生效,在服务器端不会生效。
3963: ---@param msg string
3964: function Debug.ShowHint(msg) end