pmdsky-debug-py 10.1.14__py3-none-any.whl → 10.1.15__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- pmdsky_debug_py/_release.py +1 -1
- pmdsky_debug_py/eu.py +70 -5
- pmdsky_debug_py/eu_itcm.py +68 -3
- pmdsky_debug_py/jp.py +70 -5
- pmdsky_debug_py/jp_itcm.py +68 -3
- pmdsky_debug_py/na.py +70 -5
- pmdsky_debug_py/na_itcm.py +68 -3
- pmdsky_debug_py/protocol.py +36 -1
- {pmdsky_debug_py-10.1.14.dist-info → pmdsky_debug_py-10.1.15.dist-info}/METADATA +1 -1
- pmdsky_debug_py-10.1.15.dist-info/RECORD +14 -0
- pmdsky_debug_py-10.1.14.dist-info/RECORD +0 -14
- {pmdsky_debug_py-10.1.14.dist-info → pmdsky_debug_py-10.1.15.dist-info}/WHEEL +0 -0
- {pmdsky_debug_py-10.1.14.dist-info → pmdsky_debug_py-10.1.15.dist-info}/top_level.txt +0 -0
pmdsky_debug_py/_release.py
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
RELEASE = "v0.10.1+
|
|
1
|
+
RELEASE = "v0.10.1+a4a9e51e2c"
|
pmdsky_debug_py/eu.py
CHANGED
|
@@ -3049,11 +3049,11 @@ class EuArm9Functions:
|
|
|
3049
3049
|
None,
|
|
3050
3050
|
)
|
|
3051
3051
|
|
|
3052
|
-
|
|
3052
|
+
IsMoveRangeStringUser = Symbol(
|
|
3053
3053
|
[0x13CAC],
|
|
3054
3054
|
[0x2013CAC],
|
|
3055
3055
|
None,
|
|
3056
|
-
"
|
|
3056
|
+
"IsMoveRangeStringUser",
|
|
3057
3057
|
"Returns whether a move's range string is 19 ('User').\n\nr0: Move pointer\nreturn: True if the move's range string field has a value of 19.",
|
|
3058
3058
|
None,
|
|
3059
3059
|
)
|
|
@@ -9261,6 +9261,8 @@ class EuArm9Functions:
|
|
|
9261
9261
|
"DirectoryFile_LoadDirectoryFile", LoadFileInPack
|
|
9262
9262
|
)
|
|
9263
9263
|
|
|
9264
|
+
IsMoveRangeString19 = _Deprecated("IsMoveRangeString19", IsMoveRangeStringUser)
|
|
9265
|
+
|
|
9264
9266
|
GetLowKickMultiplier = _Deprecated("GetLowKickMultiplier", GetWeightMultiplier)
|
|
9265
9267
|
|
|
9266
9268
|
|
|
@@ -26054,6 +26056,15 @@ class EuOverlay29Functions:
|
|
|
26054
26056
|
None,
|
|
26055
26057
|
)
|
|
26056
26058
|
|
|
26059
|
+
CanMonsterMoveOrSwapWithAllyInDirection = Symbol(
|
|
26060
|
+
[0x25004],
|
|
26061
|
+
[0x2301B84],
|
|
26062
|
+
None,
|
|
26063
|
+
"CanMonsterMoveOrSwapWithAllyInDirection",
|
|
26064
|
+
"Checks if the given monster can move in the specified direction. Includes if an allied or neutral monster is standing on an adjacent tile, as the monsters can swap places.\n\nReturns false if an enemy monster is standing on the target tile\n\nr0: Monster entity pointer\nr1: Direction to check\nreturn: bool",
|
|
26065
|
+
None,
|
|
26066
|
+
)
|
|
26067
|
+
|
|
26057
26068
|
CanAttackInDirection = Symbol(
|
|
26058
26069
|
[0x250E0],
|
|
26059
26070
|
[0x2301C60],
|
|
@@ -27962,12 +27973,21 @@ class EuOverlay29Functions:
|
|
|
27962
27973
|
None,
|
|
27963
27974
|
)
|
|
27964
27975
|
|
|
27976
|
+
ResetAiCanAttackInDirection = Symbol(
|
|
27977
|
+
[0x3D73C],
|
|
27978
|
+
[0x231A2BC],
|
|
27979
|
+
None,
|
|
27980
|
+
"ResetAiCanAttackInDirection",
|
|
27981
|
+
"Resets all entries in AI_CAN_ATTACK_IN_DIRECTION to false.\n\nNo params.",
|
|
27982
|
+
None,
|
|
27983
|
+
)
|
|
27984
|
+
|
|
27965
27985
|
AiConsiderMove = Symbol(
|
|
27966
27986
|
[0x3D760],
|
|
27967
27987
|
[0x231A2E0],
|
|
27968
27988
|
None,
|
|
27969
27989
|
"AiConsiderMove",
|
|
27970
|
-
"The AI uses this function to check if a move has any potential targets, to calculate the list of potential targets and to calculate the move's special weight.\nThis
|
|
27990
|
+
"The AI uses this function to check if a move has any potential targets, to calculate the list of potential targets and to calculate the move's special weight. The weight is calculated using WeightMoveWithIqSkills.\nThis function also sets the flag can_be_used on the ai_possible_move struct if it makes sense to use it.\n\nThe weight returned by this function is not the same as GetMoveAiWeight. If the AI does not have Weak-Type Picker, AiConsiderMove is called after the AI has selected which move it will use (using GetMoveAiWeight). It determines whether it makes sense for the AI to actually use the chosen move (i.e., whether targets are in range), and which direction the AI will use the move in if so. The return value of this function is not used anywhere in this case.\n\nIf the AI has Weak-Type Picker, the AI calls this function earlier in the AI logic to determine which move to use, using the returned special weight to find which move has the most advantageous type matchups.\n\nr0: ai_possible_move struct for this move\nr1: Entity pointer\nr2: Move pointer\nreturn: Move's calculated special weight",
|
|
27971
27991
|
None,
|
|
27972
27992
|
)
|
|
27973
27993
|
|
|
@@ -27989,6 +28009,15 @@ class EuOverlay29Functions:
|
|
|
27989
28009
|
None,
|
|
27990
28010
|
)
|
|
27991
28011
|
|
|
28012
|
+
WeightMoveWithIqSkills = Symbol(
|
|
28013
|
+
[0x3E244],
|
|
28014
|
+
[0x231ADC4],
|
|
28015
|
+
None,
|
|
28016
|
+
"WeightMoveWithIqSkills",
|
|
28017
|
+
"Calculates a move weight used for deciding which target the move should be used on. If the user is an ally, the target is an enemy Pokémon, and the user has Exp. Go-Getter, Efficiency Expert, or Weak-Type Picker enabled, this function calculates a move weight based on that IQ skill's functionality. Otherwise, this function returns a weight of 1.\n\nr0: User entity pointer\nr1: Move's AI range field\nr2: Target entity pointer\nr3: Move type\nreturn: Move weight for deciding move targeting.",
|
|
28018
|
+
None,
|
|
28019
|
+
)
|
|
28020
|
+
|
|
27992
28021
|
TargetRegularAttack = Symbol(
|
|
27993
28022
|
[0x3E340],
|
|
27994
28023
|
[0x231AEC0],
|
|
@@ -31353,8 +31382,8 @@ class EuOverlay29Data:
|
|
|
31353
31382
|
)
|
|
31354
31383
|
|
|
31355
31384
|
DIRECTIONAL_BIT_MASKS = Symbol(
|
|
31356
|
-
[0x76824],
|
|
31357
|
-
[0x23533A4],
|
|
31385
|
+
[0x767FC, 0x76804, 0x7680C, 0x76814, 0x7681C, 0x76824],
|
|
31386
|
+
[0x235337C, 0x2353384, 0x235338C, 0x2353394, 0x235339C, 0x23533A4],
|
|
31358
31387
|
0x8,
|
|
31359
31388
|
"DIRECTIONAL_BIT_MASKS",
|
|
31360
31389
|
"An array of one-hot bit masks corresponding to each direction_id. Used alongside tile->walkable_neighbor_flags to determine whether it's possible to move to a tile.",
|
|
@@ -33470,6 +33499,42 @@ class EuRamData:
|
|
|
33470
33499
|
"uint32_t[8]",
|
|
33471
33500
|
)
|
|
33472
33501
|
|
|
33502
|
+
AI_CAN_ATTACK_IN_DIRECTION = Symbol(
|
|
33503
|
+
[0x37D618],
|
|
33504
|
+
[0x237D618],
|
|
33505
|
+
0x8,
|
|
33506
|
+
"AI_CAN_ATTACK_IN_DIRECTION",
|
|
33507
|
+
"[Runtime] Stores whether the AI can use an attack in each direction.",
|
|
33508
|
+
"bool[8]",
|
|
33509
|
+
)
|
|
33510
|
+
|
|
33511
|
+
AI_POTENTIAL_ATTACK_TARGET_DIRECTIONS = Symbol(
|
|
33512
|
+
[0x37D620],
|
|
33513
|
+
[0x237D620],
|
|
33514
|
+
0x8,
|
|
33515
|
+
"AI_POTENTIAL_ATTACK_TARGET_DIRECTIONS",
|
|
33516
|
+
"[Runtime] Stores the directions that the AI can use an attack in. Parallel to AI_POTENTIAL_ATTACK_TARGET_WEIGHTS and AI_POTENTIAL_ATTACK_TARGETS.",
|
|
33517
|
+
"struct direction_id_8[8]",
|
|
33518
|
+
)
|
|
33519
|
+
|
|
33520
|
+
AI_POTENTIAL_ATTACK_TARGET_WEIGHTS = Symbol(
|
|
33521
|
+
[0x37D628],
|
|
33522
|
+
[0x237D628],
|
|
33523
|
+
0x20,
|
|
33524
|
+
"AI_POTENTIAL_ATTACK_TARGET_WEIGHTS",
|
|
33525
|
+
"[Runtime] Stores the targeting weights for each direction the AI can use an attack in. Parallel to AI_POTENTIAL_ATTACK_TARGET_DIRECTIONS and AI_POTENTIAL_ATTACK_TARGETS.",
|
|
33526
|
+
"uint32_t[8]",
|
|
33527
|
+
)
|
|
33528
|
+
|
|
33529
|
+
AI_POTENTIAL_ATTACK_TARGETS = Symbol(
|
|
33530
|
+
[0x37D648],
|
|
33531
|
+
[0x237D648],
|
|
33532
|
+
0x20,
|
|
33533
|
+
"AI_POTENTIAL_ATTACK_TARGETS",
|
|
33534
|
+
"[Runtime] Stores the target entity for each direction the AI can use an attack in. Parallel to AI_POTENTIAL_ATTACK_TARGET_DIRECTIONS and AI_POTENTIAL_ATTACK_TARGET_DIRECTIONS.",
|
|
33535
|
+
"struct entity*[8]",
|
|
33536
|
+
)
|
|
33537
|
+
|
|
33473
33538
|
ROLLOUT_ICE_BALL_MISSED = Symbol(
|
|
33474
33539
|
[0x37D669],
|
|
33475
33540
|
[0x237D669],
|
pmdsky_debug_py/eu_itcm.py
CHANGED
|
@@ -3003,11 +3003,11 @@ class EuItcmArm9Functions:
|
|
|
3003
3003
|
None,
|
|
3004
3004
|
)
|
|
3005
3005
|
|
|
3006
|
-
|
|
3006
|
+
IsMoveRangeStringUser = Symbol(
|
|
3007
3007
|
None,
|
|
3008
3008
|
None,
|
|
3009
3009
|
None,
|
|
3010
|
-
"
|
|
3010
|
+
"IsMoveRangeStringUser",
|
|
3011
3011
|
"Returns whether a move's range string is 19 ('User').\n\nr0: Move pointer\nreturn: True if the move's range string field has a value of 19.",
|
|
3012
3012
|
None,
|
|
3013
3013
|
)
|
|
@@ -9215,6 +9215,8 @@ class EuItcmArm9Functions:
|
|
|
9215
9215
|
"DirectoryFile_LoadDirectoryFile", LoadFileInPack
|
|
9216
9216
|
)
|
|
9217
9217
|
|
|
9218
|
+
IsMoveRangeString19 = _Deprecated("IsMoveRangeString19", IsMoveRangeStringUser)
|
|
9219
|
+
|
|
9218
9220
|
GetLowKickMultiplier = _Deprecated("GetLowKickMultiplier", GetWeightMultiplier)
|
|
9219
9221
|
|
|
9220
9222
|
|
|
@@ -25479,6 +25481,15 @@ class EuItcmOverlay29Functions:
|
|
|
25479
25481
|
None,
|
|
25480
25482
|
)
|
|
25481
25483
|
|
|
25484
|
+
CanMonsterMoveOrSwapWithAllyInDirection = Symbol(
|
|
25485
|
+
None,
|
|
25486
|
+
None,
|
|
25487
|
+
None,
|
|
25488
|
+
"CanMonsterMoveOrSwapWithAllyInDirection",
|
|
25489
|
+
"Checks if the given monster can move in the specified direction. Includes if an allied or neutral monster is standing on an adjacent tile, as the monsters can swap places.\n\nReturns false if an enemy monster is standing on the target tile\n\nr0: Monster entity pointer\nr1: Direction to check\nreturn: bool",
|
|
25490
|
+
None,
|
|
25491
|
+
)
|
|
25492
|
+
|
|
25482
25493
|
CanAttackInDirection = Symbol(
|
|
25483
25494
|
None,
|
|
25484
25495
|
None,
|
|
@@ -27387,12 +27398,21 @@ class EuItcmOverlay29Functions:
|
|
|
27387
27398
|
None,
|
|
27388
27399
|
)
|
|
27389
27400
|
|
|
27401
|
+
ResetAiCanAttackInDirection = Symbol(
|
|
27402
|
+
None,
|
|
27403
|
+
None,
|
|
27404
|
+
None,
|
|
27405
|
+
"ResetAiCanAttackInDirection",
|
|
27406
|
+
"Resets all entries in AI_CAN_ATTACK_IN_DIRECTION to false.\n\nNo params.",
|
|
27407
|
+
None,
|
|
27408
|
+
)
|
|
27409
|
+
|
|
27390
27410
|
AiConsiderMove = Symbol(
|
|
27391
27411
|
None,
|
|
27392
27412
|
None,
|
|
27393
27413
|
None,
|
|
27394
27414
|
"AiConsiderMove",
|
|
27395
|
-
"The AI uses this function to check if a move has any potential targets, to calculate the list of potential targets and to calculate the move's special weight.\nThis
|
|
27415
|
+
"The AI uses this function to check if a move has any potential targets, to calculate the list of potential targets and to calculate the move's special weight. The weight is calculated using WeightMoveWithIqSkills.\nThis function also sets the flag can_be_used on the ai_possible_move struct if it makes sense to use it.\n\nThe weight returned by this function is not the same as GetMoveAiWeight. If the AI does not have Weak-Type Picker, AiConsiderMove is called after the AI has selected which move it will use (using GetMoveAiWeight). It determines whether it makes sense for the AI to actually use the chosen move (i.e., whether targets are in range), and which direction the AI will use the move in if so. The return value of this function is not used anywhere in this case.\n\nIf the AI has Weak-Type Picker, the AI calls this function earlier in the AI logic to determine which move to use, using the returned special weight to find which move has the most advantageous type matchups.\n\nr0: ai_possible_move struct for this move\nr1: Entity pointer\nr2: Move pointer\nreturn: Move's calculated special weight",
|
|
27396
27416
|
None,
|
|
27397
27417
|
)
|
|
27398
27418
|
|
|
@@ -27414,6 +27434,15 @@ class EuItcmOverlay29Functions:
|
|
|
27414
27434
|
None,
|
|
27415
27435
|
)
|
|
27416
27436
|
|
|
27437
|
+
WeightMoveWithIqSkills = Symbol(
|
|
27438
|
+
None,
|
|
27439
|
+
None,
|
|
27440
|
+
None,
|
|
27441
|
+
"WeightMoveWithIqSkills",
|
|
27442
|
+
"Calculates a move weight used for deciding which target the move should be used on. If the user is an ally, the target is an enemy Pokémon, and the user has Exp. Go-Getter, Efficiency Expert, or Weak-Type Picker enabled, this function calculates a move weight based on that IQ skill's functionality. Otherwise, this function returns a weight of 1.\n\nr0: User entity pointer\nr1: Move's AI range field\nr2: Target entity pointer\nr3: Move type\nreturn: Move weight for deciding move targeting.",
|
|
27443
|
+
None,
|
|
27444
|
+
)
|
|
27445
|
+
|
|
27417
27446
|
TargetRegularAttack = Symbol(
|
|
27418
27447
|
None,
|
|
27419
27448
|
None,
|
|
@@ -32748,6 +32777,42 @@ class EuItcmRamData:
|
|
|
32748
32777
|
"uint32_t[8]",
|
|
32749
32778
|
)
|
|
32750
32779
|
|
|
32780
|
+
AI_CAN_ATTACK_IN_DIRECTION = Symbol(
|
|
32781
|
+
None,
|
|
32782
|
+
None,
|
|
32783
|
+
None,
|
|
32784
|
+
"AI_CAN_ATTACK_IN_DIRECTION",
|
|
32785
|
+
"[Runtime] Stores whether the AI can use an attack in each direction.",
|
|
32786
|
+
"bool[8]",
|
|
32787
|
+
)
|
|
32788
|
+
|
|
32789
|
+
AI_POTENTIAL_ATTACK_TARGET_DIRECTIONS = Symbol(
|
|
32790
|
+
None,
|
|
32791
|
+
None,
|
|
32792
|
+
None,
|
|
32793
|
+
"AI_POTENTIAL_ATTACK_TARGET_DIRECTIONS",
|
|
32794
|
+
"[Runtime] Stores the directions that the AI can use an attack in. Parallel to AI_POTENTIAL_ATTACK_TARGET_WEIGHTS and AI_POTENTIAL_ATTACK_TARGETS.",
|
|
32795
|
+
"struct direction_id_8[8]",
|
|
32796
|
+
)
|
|
32797
|
+
|
|
32798
|
+
AI_POTENTIAL_ATTACK_TARGET_WEIGHTS = Symbol(
|
|
32799
|
+
None,
|
|
32800
|
+
None,
|
|
32801
|
+
None,
|
|
32802
|
+
"AI_POTENTIAL_ATTACK_TARGET_WEIGHTS",
|
|
32803
|
+
"[Runtime] Stores the targeting weights for each direction the AI can use an attack in. Parallel to AI_POTENTIAL_ATTACK_TARGET_DIRECTIONS and AI_POTENTIAL_ATTACK_TARGETS.",
|
|
32804
|
+
"uint32_t[8]",
|
|
32805
|
+
)
|
|
32806
|
+
|
|
32807
|
+
AI_POTENTIAL_ATTACK_TARGETS = Symbol(
|
|
32808
|
+
None,
|
|
32809
|
+
None,
|
|
32810
|
+
None,
|
|
32811
|
+
"AI_POTENTIAL_ATTACK_TARGETS",
|
|
32812
|
+
"[Runtime] Stores the target entity for each direction the AI can use an attack in. Parallel to AI_POTENTIAL_ATTACK_TARGET_DIRECTIONS and AI_POTENTIAL_ATTACK_TARGET_DIRECTIONS.",
|
|
32813
|
+
"struct entity*[8]",
|
|
32814
|
+
)
|
|
32815
|
+
|
|
32751
32816
|
ROLLOUT_ICE_BALL_MISSED = Symbol(
|
|
32752
32817
|
None,
|
|
32753
32818
|
None,
|
pmdsky_debug_py/jp.py
CHANGED
|
@@ -3049,11 +3049,11 @@ class JpArm9Functions:
|
|
|
3049
3049
|
None,
|
|
3050
3050
|
)
|
|
3051
3051
|
|
|
3052
|
-
|
|
3052
|
+
IsMoveRangeStringUser = Symbol(
|
|
3053
3053
|
[0x13BD4],
|
|
3054
3054
|
[0x2013BD4],
|
|
3055
3055
|
None,
|
|
3056
|
-
"
|
|
3056
|
+
"IsMoveRangeStringUser",
|
|
3057
3057
|
"Returns whether a move's range string is 19 ('User').\n\nr0: Move pointer\nreturn: True if the move's range string field has a value of 19.",
|
|
3058
3058
|
None,
|
|
3059
3059
|
)
|
|
@@ -9261,6 +9261,8 @@ class JpArm9Functions:
|
|
|
9261
9261
|
"DirectoryFile_LoadDirectoryFile", LoadFileInPack
|
|
9262
9262
|
)
|
|
9263
9263
|
|
|
9264
|
+
IsMoveRangeString19 = _Deprecated("IsMoveRangeString19", IsMoveRangeStringUser)
|
|
9265
|
+
|
|
9264
9266
|
GetLowKickMultiplier = _Deprecated("GetLowKickMultiplier", GetWeightMultiplier)
|
|
9265
9267
|
|
|
9266
9268
|
|
|
@@ -26045,6 +26047,15 @@ class JpOverlay29Functions:
|
|
|
26045
26047
|
None,
|
|
26046
26048
|
)
|
|
26047
26049
|
|
|
26050
|
+
CanMonsterMoveOrSwapWithAllyInDirection = Symbol(
|
|
26051
|
+
[0x24C7C],
|
|
26052
|
+
[0x230255C],
|
|
26053
|
+
None,
|
|
26054
|
+
"CanMonsterMoveOrSwapWithAllyInDirection",
|
|
26055
|
+
"Checks if the given monster can move in the specified direction. Includes if an allied or neutral monster is standing on an adjacent tile, as the monsters can swap places.\n\nReturns false if an enemy monster is standing on the target tile\n\nr0: Monster entity pointer\nr1: Direction to check\nreturn: bool",
|
|
26056
|
+
None,
|
|
26057
|
+
)
|
|
26058
|
+
|
|
26048
26059
|
CanAttackInDirection = Symbol(
|
|
26049
26060
|
[0x24DB4],
|
|
26050
26061
|
[0x2302694],
|
|
@@ -27953,12 +27964,21 @@ class JpOverlay29Functions:
|
|
|
27953
27964
|
None,
|
|
27954
27965
|
)
|
|
27955
27966
|
|
|
27967
|
+
ResetAiCanAttackInDirection = Symbol(
|
|
27968
|
+
[0x3D44C],
|
|
27969
|
+
[0x231AD2C],
|
|
27970
|
+
None,
|
|
27971
|
+
"ResetAiCanAttackInDirection",
|
|
27972
|
+
"Resets all entries in AI_CAN_ATTACK_IN_DIRECTION to false.\n\nNo params.",
|
|
27973
|
+
None,
|
|
27974
|
+
)
|
|
27975
|
+
|
|
27956
27976
|
AiConsiderMove = Symbol(
|
|
27957
27977
|
[0x3D470],
|
|
27958
27978
|
[0x231AD50],
|
|
27959
27979
|
None,
|
|
27960
27980
|
"AiConsiderMove",
|
|
27961
|
-
"The AI uses this function to check if a move has any potential targets, to calculate the list of potential targets and to calculate the move's special weight.\nThis
|
|
27981
|
+
"The AI uses this function to check if a move has any potential targets, to calculate the list of potential targets and to calculate the move's special weight. The weight is calculated using WeightMoveWithIqSkills.\nThis function also sets the flag can_be_used on the ai_possible_move struct if it makes sense to use it.\n\nThe weight returned by this function is not the same as GetMoveAiWeight. If the AI does not have Weak-Type Picker, AiConsiderMove is called after the AI has selected which move it will use (using GetMoveAiWeight). It determines whether it makes sense for the AI to actually use the chosen move (i.e., whether targets are in range), and which direction the AI will use the move in if so. The return value of this function is not used anywhere in this case.\n\nIf the AI has Weak-Type Picker, the AI calls this function earlier in the AI logic to determine which move to use, using the returned special weight to find which move has the most advantageous type matchups.\n\nr0: ai_possible_move struct for this move\nr1: Entity pointer\nr2: Move pointer\nreturn: Move's calculated special weight",
|
|
27962
27982
|
None,
|
|
27963
27983
|
)
|
|
27964
27984
|
|
|
@@ -27980,6 +28000,15 @@ class JpOverlay29Functions:
|
|
|
27980
28000
|
None,
|
|
27981
28001
|
)
|
|
27982
28002
|
|
|
28003
|
+
WeightMoveWithIqSkills = Symbol(
|
|
28004
|
+
[0x3DF54],
|
|
28005
|
+
[0x231B834],
|
|
28006
|
+
None,
|
|
28007
|
+
"WeightMoveWithIqSkills",
|
|
28008
|
+
"Calculates a move weight used for deciding which target the move should be used on. If the user is an ally, the target is an enemy Pokémon, and the user has Exp. Go-Getter, Efficiency Expert, or Weak-Type Picker enabled, this function calculates a move weight based on that IQ skill's functionality. Otherwise, this function returns a weight of 1.\n\nr0: User entity pointer\nr1: Move's AI range field\nr2: Target entity pointer\nr3: Move type\nreturn: Move weight for deciding move targeting.",
|
|
28009
|
+
None,
|
|
28010
|
+
)
|
|
28011
|
+
|
|
27983
28012
|
TargetRegularAttack = Symbol(
|
|
27984
28013
|
[0x3E050],
|
|
27985
28014
|
[0x231B930],
|
|
@@ -31246,8 +31275,8 @@ class JpOverlay29Data:
|
|
|
31246
31275
|
)
|
|
31247
31276
|
|
|
31248
31277
|
DIRECTIONAL_BIT_MASKS = Symbol(
|
|
31249
|
-
[0x76138],
|
|
31250
|
-
[0x2353A18],
|
|
31278
|
+
[0x76110, 0x76118, 0x76120, 0x76128, 0x76130, 0x76138],
|
|
31279
|
+
[0x23539F0, 0x23539F8, 0x2353A00, 0x2353A08, 0x2353A10, 0x2353A18],
|
|
31251
31280
|
0x8,
|
|
31252
31281
|
"DIRECTIONAL_BIT_MASKS",
|
|
31253
31282
|
"An array of one-hot bit masks corresponding to each direction_id. Used alongside tile->walkable_neighbor_flags to determine whether it's possible to move to a tile.",
|
|
@@ -33358,6 +33387,42 @@ class JpRamData:
|
|
|
33358
33387
|
"uint32_t[8]",
|
|
33359
33388
|
)
|
|
33360
33389
|
|
|
33390
|
+
AI_CAN_ATTACK_IN_DIRECTION = Symbol(
|
|
33391
|
+
[0x37DC98],
|
|
33392
|
+
[0x237DC98],
|
|
33393
|
+
0x8,
|
|
33394
|
+
"AI_CAN_ATTACK_IN_DIRECTION",
|
|
33395
|
+
"[Runtime] Stores whether the AI can use an attack in each direction.",
|
|
33396
|
+
"bool[8]",
|
|
33397
|
+
)
|
|
33398
|
+
|
|
33399
|
+
AI_POTENTIAL_ATTACK_TARGET_DIRECTIONS = Symbol(
|
|
33400
|
+
[0x37DCA0],
|
|
33401
|
+
[0x237DCA0],
|
|
33402
|
+
0x8,
|
|
33403
|
+
"AI_POTENTIAL_ATTACK_TARGET_DIRECTIONS",
|
|
33404
|
+
"[Runtime] Stores the directions that the AI can use an attack in. Parallel to AI_POTENTIAL_ATTACK_TARGET_WEIGHTS and AI_POTENTIAL_ATTACK_TARGETS.",
|
|
33405
|
+
"struct direction_id_8[8]",
|
|
33406
|
+
)
|
|
33407
|
+
|
|
33408
|
+
AI_POTENTIAL_ATTACK_TARGET_WEIGHTS = Symbol(
|
|
33409
|
+
[0x37DCA8],
|
|
33410
|
+
[0x237DCA8],
|
|
33411
|
+
0x20,
|
|
33412
|
+
"AI_POTENTIAL_ATTACK_TARGET_WEIGHTS",
|
|
33413
|
+
"[Runtime] Stores the targeting weights for each direction the AI can use an attack in. Parallel to AI_POTENTIAL_ATTACK_TARGET_DIRECTIONS and AI_POTENTIAL_ATTACK_TARGETS.",
|
|
33414
|
+
"uint32_t[8]",
|
|
33415
|
+
)
|
|
33416
|
+
|
|
33417
|
+
AI_POTENTIAL_ATTACK_TARGETS = Symbol(
|
|
33418
|
+
[0x37DCC8],
|
|
33419
|
+
[0x237DCC8],
|
|
33420
|
+
0x20,
|
|
33421
|
+
"AI_POTENTIAL_ATTACK_TARGETS",
|
|
33422
|
+
"[Runtime] Stores the target entity for each direction the AI can use an attack in. Parallel to AI_POTENTIAL_ATTACK_TARGET_DIRECTIONS and AI_POTENTIAL_ATTACK_TARGET_DIRECTIONS.",
|
|
33423
|
+
"struct entity*[8]",
|
|
33424
|
+
)
|
|
33425
|
+
|
|
33361
33426
|
ROLLOUT_ICE_BALL_MISSED = Symbol(
|
|
33362
33427
|
[0x37DCE9],
|
|
33363
33428
|
[0x237DCE9],
|
pmdsky_debug_py/jp_itcm.py
CHANGED
|
@@ -3003,11 +3003,11 @@ class JpItcmArm9Functions:
|
|
|
3003
3003
|
None,
|
|
3004
3004
|
)
|
|
3005
3005
|
|
|
3006
|
-
|
|
3006
|
+
IsMoveRangeStringUser = Symbol(
|
|
3007
3007
|
None,
|
|
3008
3008
|
None,
|
|
3009
3009
|
None,
|
|
3010
|
-
"
|
|
3010
|
+
"IsMoveRangeStringUser",
|
|
3011
3011
|
"Returns whether a move's range string is 19 ('User').\n\nr0: Move pointer\nreturn: True if the move's range string field has a value of 19.",
|
|
3012
3012
|
None,
|
|
3013
3013
|
)
|
|
@@ -9215,6 +9215,8 @@ class JpItcmArm9Functions:
|
|
|
9215
9215
|
"DirectoryFile_LoadDirectoryFile", LoadFileInPack
|
|
9216
9216
|
)
|
|
9217
9217
|
|
|
9218
|
+
IsMoveRangeString19 = _Deprecated("IsMoveRangeString19", IsMoveRangeStringUser)
|
|
9219
|
+
|
|
9218
9220
|
GetLowKickMultiplier = _Deprecated("GetLowKickMultiplier", GetWeightMultiplier)
|
|
9219
9221
|
|
|
9220
9222
|
|
|
@@ -25479,6 +25481,15 @@ class JpItcmOverlay29Functions:
|
|
|
25479
25481
|
None,
|
|
25480
25482
|
)
|
|
25481
25483
|
|
|
25484
|
+
CanMonsterMoveOrSwapWithAllyInDirection = Symbol(
|
|
25485
|
+
None,
|
|
25486
|
+
None,
|
|
25487
|
+
None,
|
|
25488
|
+
"CanMonsterMoveOrSwapWithAllyInDirection",
|
|
25489
|
+
"Checks if the given monster can move in the specified direction. Includes if an allied or neutral monster is standing on an adjacent tile, as the monsters can swap places.\n\nReturns false if an enemy monster is standing on the target tile\n\nr0: Monster entity pointer\nr1: Direction to check\nreturn: bool",
|
|
25490
|
+
None,
|
|
25491
|
+
)
|
|
25492
|
+
|
|
25482
25493
|
CanAttackInDirection = Symbol(
|
|
25483
25494
|
None,
|
|
25484
25495
|
None,
|
|
@@ -27387,12 +27398,21 @@ class JpItcmOverlay29Functions:
|
|
|
27387
27398
|
None,
|
|
27388
27399
|
)
|
|
27389
27400
|
|
|
27401
|
+
ResetAiCanAttackInDirection = Symbol(
|
|
27402
|
+
None,
|
|
27403
|
+
None,
|
|
27404
|
+
None,
|
|
27405
|
+
"ResetAiCanAttackInDirection",
|
|
27406
|
+
"Resets all entries in AI_CAN_ATTACK_IN_DIRECTION to false.\n\nNo params.",
|
|
27407
|
+
None,
|
|
27408
|
+
)
|
|
27409
|
+
|
|
27390
27410
|
AiConsiderMove = Symbol(
|
|
27391
27411
|
None,
|
|
27392
27412
|
None,
|
|
27393
27413
|
None,
|
|
27394
27414
|
"AiConsiderMove",
|
|
27395
|
-
"The AI uses this function to check if a move has any potential targets, to calculate the list of potential targets and to calculate the move's special weight.\nThis
|
|
27415
|
+
"The AI uses this function to check if a move has any potential targets, to calculate the list of potential targets and to calculate the move's special weight. The weight is calculated using WeightMoveWithIqSkills.\nThis function also sets the flag can_be_used on the ai_possible_move struct if it makes sense to use it.\n\nThe weight returned by this function is not the same as GetMoveAiWeight. If the AI does not have Weak-Type Picker, AiConsiderMove is called after the AI has selected which move it will use (using GetMoveAiWeight). It determines whether it makes sense for the AI to actually use the chosen move (i.e., whether targets are in range), and which direction the AI will use the move in if so. The return value of this function is not used anywhere in this case.\n\nIf the AI has Weak-Type Picker, the AI calls this function earlier in the AI logic to determine which move to use, using the returned special weight to find which move has the most advantageous type matchups.\n\nr0: ai_possible_move struct for this move\nr1: Entity pointer\nr2: Move pointer\nreturn: Move's calculated special weight",
|
|
27396
27416
|
None,
|
|
27397
27417
|
)
|
|
27398
27418
|
|
|
@@ -27414,6 +27434,15 @@ class JpItcmOverlay29Functions:
|
|
|
27414
27434
|
None,
|
|
27415
27435
|
)
|
|
27416
27436
|
|
|
27437
|
+
WeightMoveWithIqSkills = Symbol(
|
|
27438
|
+
None,
|
|
27439
|
+
None,
|
|
27440
|
+
None,
|
|
27441
|
+
"WeightMoveWithIqSkills",
|
|
27442
|
+
"Calculates a move weight used for deciding which target the move should be used on. If the user is an ally, the target is an enemy Pokémon, and the user has Exp. Go-Getter, Efficiency Expert, or Weak-Type Picker enabled, this function calculates a move weight based on that IQ skill's functionality. Otherwise, this function returns a weight of 1.\n\nr0: User entity pointer\nr1: Move's AI range field\nr2: Target entity pointer\nr3: Move type\nreturn: Move weight for deciding move targeting.",
|
|
27443
|
+
None,
|
|
27444
|
+
)
|
|
27445
|
+
|
|
27417
27446
|
TargetRegularAttack = Symbol(
|
|
27418
27447
|
None,
|
|
27419
27448
|
None,
|
|
@@ -32748,6 +32777,42 @@ class JpItcmRamData:
|
|
|
32748
32777
|
"uint32_t[8]",
|
|
32749
32778
|
)
|
|
32750
32779
|
|
|
32780
|
+
AI_CAN_ATTACK_IN_DIRECTION = Symbol(
|
|
32781
|
+
None,
|
|
32782
|
+
None,
|
|
32783
|
+
None,
|
|
32784
|
+
"AI_CAN_ATTACK_IN_DIRECTION",
|
|
32785
|
+
"[Runtime] Stores whether the AI can use an attack in each direction.",
|
|
32786
|
+
"bool[8]",
|
|
32787
|
+
)
|
|
32788
|
+
|
|
32789
|
+
AI_POTENTIAL_ATTACK_TARGET_DIRECTIONS = Symbol(
|
|
32790
|
+
None,
|
|
32791
|
+
None,
|
|
32792
|
+
None,
|
|
32793
|
+
"AI_POTENTIAL_ATTACK_TARGET_DIRECTIONS",
|
|
32794
|
+
"[Runtime] Stores the directions that the AI can use an attack in. Parallel to AI_POTENTIAL_ATTACK_TARGET_WEIGHTS and AI_POTENTIAL_ATTACK_TARGETS.",
|
|
32795
|
+
"struct direction_id_8[8]",
|
|
32796
|
+
)
|
|
32797
|
+
|
|
32798
|
+
AI_POTENTIAL_ATTACK_TARGET_WEIGHTS = Symbol(
|
|
32799
|
+
None,
|
|
32800
|
+
None,
|
|
32801
|
+
None,
|
|
32802
|
+
"AI_POTENTIAL_ATTACK_TARGET_WEIGHTS",
|
|
32803
|
+
"[Runtime] Stores the targeting weights for each direction the AI can use an attack in. Parallel to AI_POTENTIAL_ATTACK_TARGET_DIRECTIONS and AI_POTENTIAL_ATTACK_TARGETS.",
|
|
32804
|
+
"uint32_t[8]",
|
|
32805
|
+
)
|
|
32806
|
+
|
|
32807
|
+
AI_POTENTIAL_ATTACK_TARGETS = Symbol(
|
|
32808
|
+
None,
|
|
32809
|
+
None,
|
|
32810
|
+
None,
|
|
32811
|
+
"AI_POTENTIAL_ATTACK_TARGETS",
|
|
32812
|
+
"[Runtime] Stores the target entity for each direction the AI can use an attack in. Parallel to AI_POTENTIAL_ATTACK_TARGET_DIRECTIONS and AI_POTENTIAL_ATTACK_TARGET_DIRECTIONS.",
|
|
32813
|
+
"struct entity*[8]",
|
|
32814
|
+
)
|
|
32815
|
+
|
|
32751
32816
|
ROLLOUT_ICE_BALL_MISSED = Symbol(
|
|
32752
32817
|
None,
|
|
32753
32818
|
None,
|
pmdsky_debug_py/na.py
CHANGED
|
@@ -3049,11 +3049,11 @@ class NaArm9Functions:
|
|
|
3049
3049
|
None,
|
|
3050
3050
|
)
|
|
3051
3051
|
|
|
3052
|
-
|
|
3052
|
+
IsMoveRangeStringUser = Symbol(
|
|
3053
3053
|
[0x13C04],
|
|
3054
3054
|
[0x2013C04],
|
|
3055
3055
|
None,
|
|
3056
|
-
"
|
|
3056
|
+
"IsMoveRangeStringUser",
|
|
3057
3057
|
"Returns whether a move's range string is 19 ('User').\n\nr0: Move pointer\nreturn: True if the move's range string field has a value of 19.",
|
|
3058
3058
|
None,
|
|
3059
3059
|
)
|
|
@@ -9261,6 +9261,8 @@ class NaArm9Functions:
|
|
|
9261
9261
|
"DirectoryFile_LoadDirectoryFile", LoadFileInPack
|
|
9262
9262
|
)
|
|
9263
9263
|
|
|
9264
|
+
IsMoveRangeString19 = _Deprecated("IsMoveRangeString19", IsMoveRangeStringUser)
|
|
9265
|
+
|
|
9264
9266
|
GetLowKickMultiplier = _Deprecated("GetLowKickMultiplier", GetWeightMultiplier)
|
|
9265
9267
|
|
|
9266
9268
|
|
|
@@ -26052,6 +26054,15 @@ class NaOverlay29Functions:
|
|
|
26052
26054
|
None,
|
|
26053
26055
|
)
|
|
26054
26056
|
|
|
26057
|
+
CanMonsterMoveOrSwapWithAllyInDirection = Symbol(
|
|
26058
|
+
[0x24F18],
|
|
26059
|
+
[0x2301158],
|
|
26060
|
+
None,
|
|
26061
|
+
"CanMonsterMoveOrSwapWithAllyInDirection",
|
|
26062
|
+
"Checks if the given monster can move in the specified direction. Includes if an allied or neutral monster is standing on an adjacent tile, as the monsters can swap places.\n\nReturns false if an enemy monster is standing on the target tile\n\nr0: Monster entity pointer\nr1: Direction to check\nreturn: bool",
|
|
26063
|
+
None,
|
|
26064
|
+
)
|
|
26065
|
+
|
|
26055
26066
|
CanAttackInDirection = Symbol(
|
|
26056
26067
|
[0x24FF4],
|
|
26057
26068
|
[0x2301234],
|
|
@@ -27960,12 +27971,21 @@ class NaOverlay29Functions:
|
|
|
27960
27971
|
None,
|
|
27961
27972
|
)
|
|
27962
27973
|
|
|
27974
|
+
ResetAiCanAttackInDirection = Symbol(
|
|
27975
|
+
[0x3D61C],
|
|
27976
|
+
[0x231985C],
|
|
27977
|
+
None,
|
|
27978
|
+
"ResetAiCanAttackInDirection",
|
|
27979
|
+
"Resets all entries in AI_CAN_ATTACK_IN_DIRECTION to false.\n\nNo params.",
|
|
27980
|
+
None,
|
|
27981
|
+
)
|
|
27982
|
+
|
|
27963
27983
|
AiConsiderMove = Symbol(
|
|
27964
27984
|
[0x3D640],
|
|
27965
27985
|
[0x2319880],
|
|
27966
27986
|
None,
|
|
27967
27987
|
"AiConsiderMove",
|
|
27968
|
-
"The AI uses this function to check if a move has any potential targets, to calculate the list of potential targets and to calculate the move's special weight.\nThis
|
|
27988
|
+
"The AI uses this function to check if a move has any potential targets, to calculate the list of potential targets and to calculate the move's special weight. The weight is calculated using WeightMoveWithIqSkills.\nThis function also sets the flag can_be_used on the ai_possible_move struct if it makes sense to use it.\n\nThe weight returned by this function is not the same as GetMoveAiWeight. If the AI does not have Weak-Type Picker, AiConsiderMove is called after the AI has selected which move it will use (using GetMoveAiWeight). It determines whether it makes sense for the AI to actually use the chosen move (i.e., whether targets are in range), and which direction the AI will use the move in if so. The return value of this function is not used anywhere in this case.\n\nIf the AI has Weak-Type Picker, the AI calls this function earlier in the AI logic to determine which move to use, using the returned special weight to find which move has the most advantageous type matchups.\n\nr0: ai_possible_move struct for this move\nr1: Entity pointer\nr2: Move pointer\nreturn: Move's calculated special weight",
|
|
27969
27989
|
None,
|
|
27970
27990
|
)
|
|
27971
27991
|
|
|
@@ -27987,6 +28007,15 @@ class NaOverlay29Functions:
|
|
|
27987
28007
|
None,
|
|
27988
28008
|
)
|
|
27989
28009
|
|
|
28010
|
+
WeightMoveWithIqSkills = Symbol(
|
|
28011
|
+
[0x3E124],
|
|
28012
|
+
[0x231A364],
|
|
28013
|
+
None,
|
|
28014
|
+
"WeightMoveWithIqSkills",
|
|
28015
|
+
"Calculates a move weight used for deciding which target the move should be used on. If the user is an ally, the target is an enemy Pokémon, and the user has Exp. Go-Getter, Efficiency Expert, or Weak-Type Picker enabled, this function calculates a move weight based on that IQ skill's functionality. Otherwise, this function returns a weight of 1.\n\nr0: User entity pointer\nr1: Move's AI range field\nr2: Target entity pointer\nr3: Move type\nreturn: Move weight for deciding move targeting.",
|
|
28016
|
+
None,
|
|
28017
|
+
)
|
|
28018
|
+
|
|
27990
28019
|
TargetRegularAttack = Symbol(
|
|
27991
28020
|
[0x3E220],
|
|
27992
28021
|
[0x231A460],
|
|
@@ -31351,8 +31380,8 @@ class NaOverlay29Data:
|
|
|
31351
31380
|
)
|
|
31352
31381
|
|
|
31353
31382
|
DIRECTIONAL_BIT_MASKS = Symbol(
|
|
31354
|
-
[0x76558],
|
|
31355
|
-
[0x2352798],
|
|
31383
|
+
[0x76530, 0x76538, 0x76540, 0x76548, 0x76550, 0x76558],
|
|
31384
|
+
[0x2352770, 0x2352778, 0x2352780, 0x2352788, 0x2352790, 0x2352798],
|
|
31356
31385
|
0x8,
|
|
31357
31386
|
"DIRECTIONAL_BIT_MASKS",
|
|
31358
31387
|
"An array of one-hot bit masks corresponding to each direction_id. Used alongside tile->walkable_neighbor_flags to determine whether it's possible to move to a tile.",
|
|
@@ -33468,6 +33497,42 @@ class NaRamData:
|
|
|
33468
33497
|
"uint32_t[8]",
|
|
33469
33498
|
)
|
|
33470
33499
|
|
|
33500
|
+
AI_CAN_ATTACK_IN_DIRECTION = Symbol(
|
|
33501
|
+
[0x37CA18],
|
|
33502
|
+
[0x237CA18],
|
|
33503
|
+
0x8,
|
|
33504
|
+
"AI_CAN_ATTACK_IN_DIRECTION",
|
|
33505
|
+
"[Runtime] Stores whether the AI can use an attack in each direction.",
|
|
33506
|
+
"bool[8]",
|
|
33507
|
+
)
|
|
33508
|
+
|
|
33509
|
+
AI_POTENTIAL_ATTACK_TARGET_DIRECTIONS = Symbol(
|
|
33510
|
+
[0x37CA20],
|
|
33511
|
+
[0x237CA20],
|
|
33512
|
+
0x8,
|
|
33513
|
+
"AI_POTENTIAL_ATTACK_TARGET_DIRECTIONS",
|
|
33514
|
+
"[Runtime] Stores the directions that the AI can use an attack in. Parallel to AI_POTENTIAL_ATTACK_TARGET_WEIGHTS and AI_POTENTIAL_ATTACK_TARGETS.",
|
|
33515
|
+
"struct direction_id_8[8]",
|
|
33516
|
+
)
|
|
33517
|
+
|
|
33518
|
+
AI_POTENTIAL_ATTACK_TARGET_WEIGHTS = Symbol(
|
|
33519
|
+
[0x37CA28],
|
|
33520
|
+
[0x237CA28],
|
|
33521
|
+
0x20,
|
|
33522
|
+
"AI_POTENTIAL_ATTACK_TARGET_WEIGHTS",
|
|
33523
|
+
"[Runtime] Stores the targeting weights for each direction the AI can use an attack in. Parallel to AI_POTENTIAL_ATTACK_TARGET_DIRECTIONS and AI_POTENTIAL_ATTACK_TARGETS.",
|
|
33524
|
+
"uint32_t[8]",
|
|
33525
|
+
)
|
|
33526
|
+
|
|
33527
|
+
AI_POTENTIAL_ATTACK_TARGETS = Symbol(
|
|
33528
|
+
[0x37CA48],
|
|
33529
|
+
[0x237CA48],
|
|
33530
|
+
0x20,
|
|
33531
|
+
"AI_POTENTIAL_ATTACK_TARGETS",
|
|
33532
|
+
"[Runtime] Stores the target entity for each direction the AI can use an attack in. Parallel to AI_POTENTIAL_ATTACK_TARGET_DIRECTIONS and AI_POTENTIAL_ATTACK_TARGET_DIRECTIONS.",
|
|
33533
|
+
"struct entity*[8]",
|
|
33534
|
+
)
|
|
33535
|
+
|
|
33471
33536
|
ROLLOUT_ICE_BALL_MISSED = Symbol(
|
|
33472
33537
|
[0x37CA69],
|
|
33473
33538
|
[0x237CA69],
|
pmdsky_debug_py/na_itcm.py
CHANGED
|
@@ -3003,11 +3003,11 @@ class NaItcmArm9Functions:
|
|
|
3003
3003
|
None,
|
|
3004
3004
|
)
|
|
3005
3005
|
|
|
3006
|
-
|
|
3006
|
+
IsMoveRangeStringUser = Symbol(
|
|
3007
3007
|
None,
|
|
3008
3008
|
None,
|
|
3009
3009
|
None,
|
|
3010
|
-
"
|
|
3010
|
+
"IsMoveRangeStringUser",
|
|
3011
3011
|
"Returns whether a move's range string is 19 ('User').\n\nr0: Move pointer\nreturn: True if the move's range string field has a value of 19.",
|
|
3012
3012
|
None,
|
|
3013
3013
|
)
|
|
@@ -9215,6 +9215,8 @@ class NaItcmArm9Functions:
|
|
|
9215
9215
|
"DirectoryFile_LoadDirectoryFile", LoadFileInPack
|
|
9216
9216
|
)
|
|
9217
9217
|
|
|
9218
|
+
IsMoveRangeString19 = _Deprecated("IsMoveRangeString19", IsMoveRangeStringUser)
|
|
9219
|
+
|
|
9218
9220
|
GetLowKickMultiplier = _Deprecated("GetLowKickMultiplier", GetWeightMultiplier)
|
|
9219
9221
|
|
|
9220
9222
|
|
|
@@ -25479,6 +25481,15 @@ class NaItcmOverlay29Functions:
|
|
|
25479
25481
|
None,
|
|
25480
25482
|
)
|
|
25481
25483
|
|
|
25484
|
+
CanMonsterMoveOrSwapWithAllyInDirection = Symbol(
|
|
25485
|
+
None,
|
|
25486
|
+
None,
|
|
25487
|
+
None,
|
|
25488
|
+
"CanMonsterMoveOrSwapWithAllyInDirection",
|
|
25489
|
+
"Checks if the given monster can move in the specified direction. Includes if an allied or neutral monster is standing on an adjacent tile, as the monsters can swap places.\n\nReturns false if an enemy monster is standing on the target tile\n\nr0: Monster entity pointer\nr1: Direction to check\nreturn: bool",
|
|
25490
|
+
None,
|
|
25491
|
+
)
|
|
25492
|
+
|
|
25482
25493
|
CanAttackInDirection = Symbol(
|
|
25483
25494
|
None,
|
|
25484
25495
|
None,
|
|
@@ -27387,12 +27398,21 @@ class NaItcmOverlay29Functions:
|
|
|
27387
27398
|
None,
|
|
27388
27399
|
)
|
|
27389
27400
|
|
|
27401
|
+
ResetAiCanAttackInDirection = Symbol(
|
|
27402
|
+
None,
|
|
27403
|
+
None,
|
|
27404
|
+
None,
|
|
27405
|
+
"ResetAiCanAttackInDirection",
|
|
27406
|
+
"Resets all entries in AI_CAN_ATTACK_IN_DIRECTION to false.\n\nNo params.",
|
|
27407
|
+
None,
|
|
27408
|
+
)
|
|
27409
|
+
|
|
27390
27410
|
AiConsiderMove = Symbol(
|
|
27391
27411
|
None,
|
|
27392
27412
|
None,
|
|
27393
27413
|
None,
|
|
27394
27414
|
"AiConsiderMove",
|
|
27395
|
-
"The AI uses this function to check if a move has any potential targets, to calculate the list of potential targets and to calculate the move's special weight.\nThis
|
|
27415
|
+
"The AI uses this function to check if a move has any potential targets, to calculate the list of potential targets and to calculate the move's special weight. The weight is calculated using WeightMoveWithIqSkills.\nThis function also sets the flag can_be_used on the ai_possible_move struct if it makes sense to use it.\n\nThe weight returned by this function is not the same as GetMoveAiWeight. If the AI does not have Weak-Type Picker, AiConsiderMove is called after the AI has selected which move it will use (using GetMoveAiWeight). It determines whether it makes sense for the AI to actually use the chosen move (i.e., whether targets are in range), and which direction the AI will use the move in if so. The return value of this function is not used anywhere in this case.\n\nIf the AI has Weak-Type Picker, the AI calls this function earlier in the AI logic to determine which move to use, using the returned special weight to find which move has the most advantageous type matchups.\n\nr0: ai_possible_move struct for this move\nr1: Entity pointer\nr2: Move pointer\nreturn: Move's calculated special weight",
|
|
27396
27416
|
None,
|
|
27397
27417
|
)
|
|
27398
27418
|
|
|
@@ -27414,6 +27434,15 @@ class NaItcmOverlay29Functions:
|
|
|
27414
27434
|
None,
|
|
27415
27435
|
)
|
|
27416
27436
|
|
|
27437
|
+
WeightMoveWithIqSkills = Symbol(
|
|
27438
|
+
None,
|
|
27439
|
+
None,
|
|
27440
|
+
None,
|
|
27441
|
+
"WeightMoveWithIqSkills",
|
|
27442
|
+
"Calculates a move weight used for deciding which target the move should be used on. If the user is an ally, the target is an enemy Pokémon, and the user has Exp. Go-Getter, Efficiency Expert, or Weak-Type Picker enabled, this function calculates a move weight based on that IQ skill's functionality. Otherwise, this function returns a weight of 1.\n\nr0: User entity pointer\nr1: Move's AI range field\nr2: Target entity pointer\nr3: Move type\nreturn: Move weight for deciding move targeting.",
|
|
27443
|
+
None,
|
|
27444
|
+
)
|
|
27445
|
+
|
|
27417
27446
|
TargetRegularAttack = Symbol(
|
|
27418
27447
|
None,
|
|
27419
27448
|
None,
|
|
@@ -32748,6 +32777,42 @@ class NaItcmRamData:
|
|
|
32748
32777
|
"uint32_t[8]",
|
|
32749
32778
|
)
|
|
32750
32779
|
|
|
32780
|
+
AI_CAN_ATTACK_IN_DIRECTION = Symbol(
|
|
32781
|
+
None,
|
|
32782
|
+
None,
|
|
32783
|
+
None,
|
|
32784
|
+
"AI_CAN_ATTACK_IN_DIRECTION",
|
|
32785
|
+
"[Runtime] Stores whether the AI can use an attack in each direction.",
|
|
32786
|
+
"bool[8]",
|
|
32787
|
+
)
|
|
32788
|
+
|
|
32789
|
+
AI_POTENTIAL_ATTACK_TARGET_DIRECTIONS = Symbol(
|
|
32790
|
+
None,
|
|
32791
|
+
None,
|
|
32792
|
+
None,
|
|
32793
|
+
"AI_POTENTIAL_ATTACK_TARGET_DIRECTIONS",
|
|
32794
|
+
"[Runtime] Stores the directions that the AI can use an attack in. Parallel to AI_POTENTIAL_ATTACK_TARGET_WEIGHTS and AI_POTENTIAL_ATTACK_TARGETS.",
|
|
32795
|
+
"struct direction_id_8[8]",
|
|
32796
|
+
)
|
|
32797
|
+
|
|
32798
|
+
AI_POTENTIAL_ATTACK_TARGET_WEIGHTS = Symbol(
|
|
32799
|
+
None,
|
|
32800
|
+
None,
|
|
32801
|
+
None,
|
|
32802
|
+
"AI_POTENTIAL_ATTACK_TARGET_WEIGHTS",
|
|
32803
|
+
"[Runtime] Stores the targeting weights for each direction the AI can use an attack in. Parallel to AI_POTENTIAL_ATTACK_TARGET_DIRECTIONS and AI_POTENTIAL_ATTACK_TARGETS.",
|
|
32804
|
+
"uint32_t[8]",
|
|
32805
|
+
)
|
|
32806
|
+
|
|
32807
|
+
AI_POTENTIAL_ATTACK_TARGETS = Symbol(
|
|
32808
|
+
None,
|
|
32809
|
+
None,
|
|
32810
|
+
None,
|
|
32811
|
+
"AI_POTENTIAL_ATTACK_TARGETS",
|
|
32812
|
+
"[Runtime] Stores the target entity for each direction the AI can use an attack in. Parallel to AI_POTENTIAL_ATTACK_TARGET_DIRECTIONS and AI_POTENTIAL_ATTACK_TARGET_DIRECTIONS.",
|
|
32813
|
+
"struct entity*[8]",
|
|
32814
|
+
)
|
|
32815
|
+
|
|
32751
32816
|
ROLLOUT_ICE_BALL_MISSED = Symbol(
|
|
32752
32817
|
None,
|
|
32753
32818
|
None,
|
pmdsky_debug_py/protocol.py
CHANGED
|
@@ -1737,7 +1737,7 @@ class Arm9FunctionsProtocol(Protocol):
|
|
|
1737
1737
|
None,
|
|
1738
1738
|
]
|
|
1739
1739
|
|
|
1740
|
-
|
|
1740
|
+
IsMoveRangeStringUser: Symbol[
|
|
1741
1741
|
Optional[list[int]],
|
|
1742
1742
|
None,
|
|
1743
1743
|
]
|
|
@@ -15588,6 +15588,11 @@ class Overlay29FunctionsProtocol(Protocol):
|
|
|
15588
15588
|
None,
|
|
15589
15589
|
]
|
|
15590
15590
|
|
|
15591
|
+
CanMonsterMoveOrSwapWithAllyInDirection: Symbol[
|
|
15592
|
+
Optional[list[int]],
|
|
15593
|
+
None,
|
|
15594
|
+
]
|
|
15595
|
+
|
|
15591
15596
|
CanAttackInDirection: Symbol[
|
|
15592
15597
|
Optional[list[int]],
|
|
15593
15598
|
None,
|
|
@@ -16648,6 +16653,11 @@ class Overlay29FunctionsProtocol(Protocol):
|
|
|
16648
16653
|
None,
|
|
16649
16654
|
]
|
|
16650
16655
|
|
|
16656
|
+
ResetAiCanAttackInDirection: Symbol[
|
|
16657
|
+
Optional[list[int]],
|
|
16658
|
+
None,
|
|
16659
|
+
]
|
|
16660
|
+
|
|
16651
16661
|
AiConsiderMove: Symbol[
|
|
16652
16662
|
Optional[list[int]],
|
|
16653
16663
|
None,
|
|
@@ -16663,6 +16673,11 @@ class Overlay29FunctionsProtocol(Protocol):
|
|
|
16663
16673
|
None,
|
|
16664
16674
|
]
|
|
16665
16675
|
|
|
16676
|
+
WeightMoveWithIqSkills: Symbol[
|
|
16677
|
+
Optional[list[int]],
|
|
16678
|
+
None,
|
|
16679
|
+
]
|
|
16680
|
+
|
|
16666
16681
|
TargetRegularAttack: Symbol[
|
|
16667
16682
|
Optional[list[int]],
|
|
16668
16683
|
None,
|
|
@@ -19761,6 +19776,26 @@ class RamDataProtocol(Protocol):
|
|
|
19761
19776
|
Optional[int],
|
|
19762
19777
|
]
|
|
19763
19778
|
|
|
19779
|
+
AI_CAN_ATTACK_IN_DIRECTION: Symbol[
|
|
19780
|
+
Optional[list[int]],
|
|
19781
|
+
Optional[int],
|
|
19782
|
+
]
|
|
19783
|
+
|
|
19784
|
+
AI_POTENTIAL_ATTACK_TARGET_DIRECTIONS: Symbol[
|
|
19785
|
+
Optional[list[int]],
|
|
19786
|
+
Optional[int],
|
|
19787
|
+
]
|
|
19788
|
+
|
|
19789
|
+
AI_POTENTIAL_ATTACK_TARGET_WEIGHTS: Symbol[
|
|
19790
|
+
Optional[list[int]],
|
|
19791
|
+
Optional[int],
|
|
19792
|
+
]
|
|
19793
|
+
|
|
19794
|
+
AI_POTENTIAL_ATTACK_TARGETS: Symbol[
|
|
19795
|
+
Optional[list[int]],
|
|
19796
|
+
Optional[int],
|
|
19797
|
+
]
|
|
19798
|
+
|
|
19764
19799
|
ROLLOUT_ICE_BALL_MISSED: Symbol[
|
|
19765
19800
|
Optional[list[int]],
|
|
19766
19801
|
Optional[int],
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
pmdsky_debug_py/__init__.py,sha256=xvXjdxEqeoQaaS6ssZYVI9jARzv5M4q6FNwA3Z6fOw4,1831
|
|
2
|
+
pmdsky_debug_py/_release.py,sha256=oW4peccnf3LiK6to3pVIlfqQZnm-J4OC_gVHXPiJHYY,31
|
|
3
|
+
pmdsky_debug_py/eu.py,sha256=5Yl0Jgj3jemoy33M0DEWRelMMJQ2RzsUi6bXXNDjUq0,1175763
|
|
4
|
+
pmdsky_debug_py/eu_itcm.py,sha256=kgPgXbZNI66eK_ySXxVx-RszqTwmR0YoZ4V0TumRWks,1123343
|
|
5
|
+
pmdsky_debug_py/jp.py,sha256=4AaTWd8Z_9d9ZxiqhXp0bS2fClNlUY0U0xfch8aR2Yo,1172491
|
|
6
|
+
pmdsky_debug_py/jp_itcm.py,sha256=3meYYolzZO--8JV3fsU-Q95-2_DB1sDhg3E0PLrRJlw,1123343
|
|
7
|
+
pmdsky_debug_py/na.py,sha256=dXtR3A0udv0pE3PKDBewSATViFGpYkEmcLHqM-KQido,1176720
|
|
8
|
+
pmdsky_debug_py/na_itcm.py,sha256=Nm-xoCIiNdJg7RhiNxdLRrUwJks8RBhuoM4fl228rRQ,1123343
|
|
9
|
+
pmdsky_debug_py/protocol.py,sha256=6O_9eNvaK5Y55PxHQL6NOwYgyoXohSMAwXT_9-Q9qdk,343529
|
|
10
|
+
pmdsky_debug_py/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
11
|
+
pmdsky_debug_py-10.1.15.dist-info/METADATA,sha256=aprgKfc6FrAR8fpZZeKrtmKg82_CTr00gXnH74XouT0,1376
|
|
12
|
+
pmdsky_debug_py-10.1.15.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
13
|
+
pmdsky_debug_py-10.1.15.dist-info/top_level.txt,sha256=cqvpcJbud2s8IyBAc1MfCySwniko_6qO5LWSSxNIoXI,16
|
|
14
|
+
pmdsky_debug_py-10.1.15.dist-info/RECORD,,
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
pmdsky_debug_py/__init__.py,sha256=xvXjdxEqeoQaaS6ssZYVI9jARzv5M4q6FNwA3Z6fOw4,1831
|
|
2
|
-
pmdsky_debug_py/_release.py,sha256=MrDjd6IdKDXfbcm06I9KNNxKufFtDqzsfFvD2a0AuSY,31
|
|
3
|
-
pmdsky_debug_py/eu.py,sha256=ZlmZujyzHbWU69uVlEyKKL1G3sMXZ3Vmqd9Z0mrELKU,1172503
|
|
4
|
-
pmdsky_debug_py/eu_itcm.py,sha256=endPOP3etgWPGsBcg3g70Xdsr7Tqo8ZlDDJwKEBL3wc,1120269
|
|
5
|
-
pmdsky_debug_py/jp.py,sha256=aS62hzRHKkrTCL6iMN_SVgCr-I9w5jPWn5PYcEifiHw,1169231
|
|
6
|
-
pmdsky_debug_py/jp_itcm.py,sha256=gu6_VldknhVUCI2PM7G_XwhYz5l_Pw3BeLKlE6dxeRI,1120269
|
|
7
|
-
pmdsky_debug_py/na.py,sha256=tKWvTlnCwKMyxg0whpZ_ptuNXT3jXO26SL4M7bgiWOo,1173460
|
|
8
|
-
pmdsky_debug_py/na_itcm.py,sha256=__LgGcnE9yS0j25lEeGW58n_gvs8ZwVK3920iIL-t2s,1120269
|
|
9
|
-
pmdsky_debug_py/protocol.py,sha256=QcB1pNGG1AR076S9Gb3qsada7kFt8n1w3ly4lVGSso8,342831
|
|
10
|
-
pmdsky_debug_py/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
11
|
-
pmdsky_debug_py-10.1.14.dist-info/METADATA,sha256=X4nlXJLMw1gmEuOLhCWowLRc5wYdzyaEqm27TI6rRIA,1376
|
|
12
|
-
pmdsky_debug_py-10.1.14.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
13
|
-
pmdsky_debug_py-10.1.14.dist-info/top_level.txt,sha256=cqvpcJbud2s8IyBAc1MfCySwniko_6qO5LWSSxNIoXI,16
|
|
14
|
-
pmdsky_debug_py-10.1.14.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|