游戏王残局简化版

Diff
Login

Diff

Differences From Artifact [1126f00ff2]:

To Artifact [d10a427f37]:


1
2
3


4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20

21
22
23
24

















































25
26
27
28
29
30
31
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21

22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82



+
+
















-
+




+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+







---@meta

---@class Card
---@field discard_effect Effect
---@field star_knight_summon_effect Effect
Card = {}

---@class Duel
Duel = {}

---@class Effect
Effect = {}

---@class Group
Group = {}

---@class Debug
Debug = {}

-----

---
---仪式怪兽的解放过滤条件
---@return boolean
---@param c Card
---@param tp integer
function Card.mat_filter(c,tp) end

---素材检查(烙印融合)
---@param tp integer
---@param sg Group
---@param fc Card
function Card.branded_fusion_check(tp,sg,fc) end

---素材检查(电子负载融合)
---@param tp integer
---@param sg Group
---@param fc Card
function Card.cyber_fusion_check(tp,sg,fc) end

---素材检查(破坏剑士融合)
---@param tp integer
---@param sg Group
---@param fc Card
function Card.destruction_swordsman_fusion_check(tp,sg,fc) end

---素材检查(至爱接触)
---@param tp integer
---@param sg Group
---@param fc Card
function Card.hero_fusion_check(tp,sg,fc) end

---素材检查(真红眼融合)
---@param tp integer
---@param sg Group
---@param fc Card
function Card.red_eyes_fusion_check(tp,sg,fc) end

---素材检查(奇迹同调融合)
---@param tp integer
---@param sg Group
---@param fc Card
function Card.synchro_fusion_check(tp,sg,fc) end

---素材检查(究极融合)
---@param tp integer
---@param sg Group
---@param fc Card
function Card.ultimate_fusion_check(tp,sg,fc) end

---当作装备卡装备(异热同心武器)
---@param c Card
---@param tp integer
---@param tc Card
function Card.zw_equip_monster(c,tp,tc) end


---返回c的当前卡号(可能因为效果改变)
---@return integer
---@return integer|nil
---@param c Card
function Card.GetCode(c) end

397
398
399
400
401
402
403





404
405
406
407
408
409
410
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466







+
+
+
+
+







---@param c Card
function Card.GetPreviousAttackOnField(c) end

---返回c位置变化之前在场上的守备力
---@return integer
---@param c Card
function Card.GetPreviousDefenseOnField(c) end

---返回c位置变化之前在场上叠放的卡片数量
---@return integer
---@param c Card
function Card.GetPreviousOverlayCountOnField(c) end

---返回c的持有者
---@return integer
---@param c Card
function Card.GetOwner(c) end

---返回c的当前控制者
1706
1707
1708
1709
1710
1711
1712





1713
1714
1715
1716
1717
1718
1719
1762
1763
1764
1765
1766
1767
1768
1769
1770
1771
1772
1773
1774
1775
1776
1777
1778
1779
1780







+
+
+
+
+







function Duel.GetLP(player) end

---设置玩家player的当前LP为lp
---@param player integer
---@param lp integer
function Duel.SetLP(player,lp) end

---返回当前的回合玩家是否为playerid
---@return boolean
---@param playerid integer
function Duel.IsTurnPlayer(playerid) end

---返回当前的回合玩家
---@return integer
function Duel.GetTurnPlayer() end

---返回[player所经过的]当前的回合数
---@return integer
---@param player? integer
1806
1807
1808
1809
1810
1811
1812

1813
1814
1815
1816
1817
1818

1819

1820
1821
1822
1823
1824
1825
1826
1867
1868
1869
1870
1871
1872
1873
1874
1875
1876
1877
1878
1879
1880
1881

1882
1883
1884
1885
1886
1887
1888
1889







+






+
-
+







function Duel.SendtoHand(targets,player,reason,reason_player) end

---以reason原因把targets送去玩家player的卡组,返回值是实际被操作的数量
---如果player是nil则返回卡的持有者的卡组
---如果seq=0,则是返回卡组最顶端;seq=1则是返回卡组最底端;
---其余情况则是返回最顶端并且标记需要洗卡组
---如果设置reason_player,则视为被玩家reason_player移动
---如果设置send_activating,则可以移动发动中的魔法陷阱卡
---@return integer
---@param targets Card|Group
---@param player integer|nil
---@param seq integer
---@param reason integer
---@param reason_player? integer
---@param send_activating? boolean
function Duel.SendtoDeck(targets,player,seq,reason,reason_player) end
function Duel.SendtoDeck(targets,player,seq,reason,reason_player,send_activating) end

---以reason原因把灵摆卡targets表侧表示送去玩家player的额外卡组,返回值是实际被操作的数量
---如果player是nil则返回卡的持有者的额外卡组
---@return integer
---@param targets Card|Group
---@param player integer|nil
---@param reason integer
2043
2044
2045
2046
2047
2048
2049
2050

2051
2052
2053
2054
2055
2056
2057
2106
2107
2108
2109
2110
2111
2112

2113
2114
2115
2116
2117
2118
2119
2120







-
+







function Duel.SetChainLimit(f) end

---功能同Duel.SetChainLimit,但是此函数设定的连锁条件直到连锁结束才会解除
---@param f function
function Duel.SetChainLimitTillChainEnd(f) end

---返回玩家player受到的连锁素材的效果,此函数仅用于融合类卡的效果
---@return Effect
---@return Effect|nil
---@param player integer
function Duel.GetChainMaterial(player) end

---确认玩家player卡组最上方count张卡
---@param player integer
---@param count integer
function Duel.ConfirmDecktop(player,count) end
2072
2073
2074
2075
2076
2077
2078
2079
2080
2081
2082
2083
2084






2085
2086
2087
2088
2089
2090
2091
2135
2136
2137
2138
2139
2140
2141






2142
2143
2144
2145
2146
2147
2148
2149
2150
2151
2152
2153
2154







-
-
-
-
-
-
+
+
+
+
+
+







---@param target_player integer
---@param count integer
function Duel.SortDecktop(sort_player,target_player,count) end

---检查当前是否是event时点
---若get_info=true并且是正确的时点,则还返回触发时点的信息 eg,ep,ev,re,r,rp
---@return boolean
---@return Group|nil
---@return integer|nil
---@return integer|nil
---@return Effect|nil
---@return integer|nil
---@return integer|nil
---@return Group 可能为空
---@return integer 可能为空
---@return integer 可能为空 
---@return Effect 可能为空
---@return integer 可能为空
---@return integer 可能为空
---@param event integer
---@param get_info? boolean
function Duel.CheckEvent(event,get_info) end

---以eg,ep,ev,re,r,rp触发一个时点 code
---@param eg Group|Card
---@param code integer
2230
2231
2232
2233
2234
2235
2236




2237
2238
2239
2240
2241
2242
2243
2293
2294
2295
2296
2297
2298
2299
2300
2301
2302
2303
2304
2305
2306
2307
2308
2309
2310







+
+
+
+







---@param disable? boolean default: true
function Duel.DisableShuffleCheck(disable) end

---关闭卡片的自爆检查。不传参或传true为关闭,传false为启用自爆检查
---@param enabled? boolean default: true
function Duel.DisableSelfDestroyCheck(enabled) end

---启用选择卡组时显示真实序号
---@param enabled? boolean default: true
function Duel.PreserveSelectDeckSequence(enabled) end

---手动洗切玩家player的卡组
---注:会重置洗卡检测的状态
---@param player integer
function Duel.ShuffleDeck(player) end

---手动洗切玩家player的额外卡组
---@param player integer
2456
2457
2458
2459
2460
2461
2462













2463
2464
2465
2466
2467
2468
2469
2523
2524
2525
2526
2527
2528
2529
2530
2531
2532
2533
2534
2535
2536
2537
2538
2539
2540
2541
2542
2543
2544
2545
2546
2547
2548
2549







+
+
+
+
+
+
+
+
+
+
+
+
+







---@return ... Card
function Duel.GetFirstTarget() end

---返回当前连锁所有有关联的对象卡
---@return Group
function Duel.GetTargetsRelateToChain() end

---返回当前的阶段是否为phase
---@param phase integer
---@return boolean
function Duel.IsPhase(phase) end

---返回当前的阶段是否为主要阶段
---@return boolean
function Duel.IsMainPhase() end

---返回当前的阶段是否为战斗阶段
---@return boolean
function Duel.IsBattlePhase() end

---返回当前的阶段
---@return integer
function Duel.GetCurrentPhase() end

---跳过玩家player的phase阶段,并在特定的阶段后reset,reset参数和效果相同
---#value只对phase=PHASE_BATTLE才有用,value=1跳过战斗阶段的结束步骤,用于“变成回合结束阶段”等(招财猫王,闪光弹)
---@param player integer
2482
2483
2484
2485
2486
2487
2488
2489
2490


2491
2492
2493
2494
2495
2496
2497
2562
2563
2564
2565
2566
2567
2568


2569
2570
2571
2572
2573
2574
2575
2576
2577







-
-
+
+







function Duel.GetAttacker() end

---返回此次战斗被攻击的卡,如果返回nil表示是直接攻击
---@return Card
function Duel.GetAttackTarget() end

---返回由player操控的正处于战斗中的怪兽。如果没有战斗或没有目标则会返回nil。
---@return Card|nil
---@return Card|nil
---@return Card
---@return Card
---@param player integer
function Duel.GetBattleMonster(player) end

---无效此次攻击,返回值表示是否成功
---此次攻击已经被其他效果无效或导致攻击的卡不能攻击则返回false
---@return boolean
function Duel.NegateAttack() end
2743
2744
2745
2746
2747
2748
2749
2750

2751
2752
2753
2754
2755
2756
2757
2823
2824
2825
2826
2827
2828
2829

2830
2831
2832
2833
2834
2835
2836
2837







-
+







function Duel.CheckMustMaterial(player,cards,ecode) end

---让玩家player从g中选择一组[必须包含gc在内的]融合怪兽c的融合素材
---##根据c的种类为EFFECT_FUSION_MATERIAL的效果的Operation操作
---@return Group
---@param player integer
---@param c Card
---@param g Group
---@param g Group|nil 不能为空
---@param gc? Card|nil
---@param chkf? integer default: PLAYER_NONE
---@param not_material? boolean default: false
function Duel.SelectFusionMaterial(player,c,g,gc,chkf,not_material) end

---设置g为需要使用的融合素材
---@param g Group
2889
2890
2891
2892
2893
2894
2895
2896
2897
2898
2899




2900
2901
2902
2903
2904
2905
2906
2969
2970
2971
2972
2973
2974
2975




2976
2977
2978
2979
2980
2981
2982
2983
2984
2985
2986







-
-
-
-
+
+
+
+







---@param target_param integer
function Duel.SetOperationInfo(chainc,category,targets,count,target_player,target_param) end

---返回连锁chainc的category分类的操作信息,存在的话,则返回值为5个, chainc=0 则是表示当前连锁
---第一个返回值是false的话表示不存在该分类
---后4个返回值对应Duel.SetOperationInfo的后4个参数:Card|Group targets, int count, int target_player, int target_param
---@return boolean
---@return Group|nil
---@return integer|nil
---@return integer|nil
---@return integer|nil
---@return Group 可能为空
---@return integer 可能为空
---@return integer 可能为空
---@return integer 可能为空
---@param chainc integer
---@param category integer
function Duel.GetOperationInfo(chainc,category) end

---返回连锁chainc包含的操作分类的数量
---@return integer
---@param chainc integer
2975
2976
2977
2978
2979
2980
2981





2982
2983
2984
2985
2986
2987
2988
3055
3056
3057
3058
3059
3060
3061
3062
3063
3064
3065
3066
3067
3068
3069
3070
3071
3072
3073







+
+
+
+
+







function Duel.RemoveOverlayCard(player,s,o,min,max,reason) end

---给玩家player发送hint_type类型的消息提示,提示内容为desc
---@param hint_type integer
---@param player integer
---@param desc integer
function Duel.Hint(hint_type,player,desc) end

---返回上次给玩家player发送的HINT_SELECTMSG类型的提示内容
---@param player integer
---@return integer
function Duel.GetLastSelectHint(player) end

---手动为g显示被选为对象的动画效果
---@param g Group
function Duel.HintSelection(g) end

---让玩家player选择是否发动卡片c的效果[提示文字可以自行用desc替换,desc 用 aux.Stringid 获取]
---@return boolean
3260
3261
3262
3263
3264
3265
3266




3267
3268
3269
3270
3271
3272
3273
3345
3346
3347
3348
3349
3350
3351
3352
3353
3354
3355
3356
3357
3358
3359
3360
3361
3362







+
+
+
+







---@param c Card
function Duel.IsPlayerCanSendtoDeck(player,c) end

---检查玩家player是否有通常召唤外的召唤次数。
---@return boolean
---@param player integer
function Duel.IsPlayerCanAdditionalSummon(player) end

---检查当前是处于连锁处理中,还是不入连锁的效果处理中
---@return boolean
function Duel.IsChainSolving() end

---检查连锁chainc的发动能否被无效
---@return boolean
---@param chainc integer
function Duel.IsChainNegatable(chainc) end

---检查连锁chainc的效果能否被无效
3754
3755
3756
3757
3758
3759
3760









3761
3762
3763
3764
3765
3766
3767
3843
3844
3845
3846
3847
3848
3849
3850
3851
3852
3853
3854
3855
3856
3857
3858
3859
3860
3861
3862
3863
3864
3865







+
+
+
+
+
+
+
+
+







---让玩家player从g中随机选择count张卡
---因为是随机选择,所以参数player基本无用,由系统随机选取
---@return Group
---@param g Group
---@param player integer
---@param count integer
function Group.RandomSelect(g,player,count) end

---让玩家player从g中选择min-max张不等于ex的卡,可以取消并返回nil
---@return Group
---@param g Group
---@param player integer
---@param min integer
---@param max integer
---@param ex Card|Group|nil
function Group.CancelableSelect(g,player,min,max,ex) end

---过滤函数,检查g中是否存在至少count张满足筛选条件f并且不等于ex的卡
---从第5个参数开始为额外参数
---@return boolean
---@param g Group
---@param f function
---@param count integer