pmdsky-debug-py 10.0.25__py3-none-any.whl → 10.0.27__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.
@@ -1 +1 @@
1
- RELEASE = "v0.10.0+4bd030757a"
1
+ RELEASE = "v0.10.0+922724f961"
pmdsky_debug_py/eu.py CHANGED
@@ -1785,7 +1785,7 @@ class EuArm9Functions:
1785
1785
  [0x200EB48],
1786
1786
  None,
1787
1787
  "TestItemAiFlag",
1788
- "Used to check the AI flags for an item. Tests bit 7 if r1 is 0, bit 6 if r1 is 1, bit\n5 otherwise.\n\nr0: item ID\nr1: bit_id\nreturn: bool",
1788
+ "Returns a boolean indicating whether the item is consumable, throwable at an ally, or throwable at an enemy, depending on item_flag.\nThe table used for this is inaccessible in the code, as it is loaded from a file in the ROM at runtime.\nBit 7 in the table corresponds to ITEM_FLAG_CONSUMABLE, bit 6 to ITEM_FLAG_THROWABLE_AT_ALLY, and bit 5 to ITEM_FLAG_THROWABLE_AT_ENEMY.\n\nr0: item_id enum\nr1: item_flag enum. Function will test a different allowed AI action depending on the value.\nreturn: bool",
1789
1789
  None,
1790
1790
  )
1791
1791
 
@@ -24188,6 +24188,15 @@ class EuOverlay29Functions:
24188
24188
  None,
24189
24189
  )
24190
24190
 
24191
+ SetDecoyAiTracker = Symbol(
24192
+ [0x1F3C4],
24193
+ [0x22FBF44],
24194
+ None,
24195
+ "SetDecoyAiTracker",
24196
+ "If there is a decoy on the floor that the entity can see, sets the entity's decoy_ai_tracker to 1 or 2,\ndepending on whether the attacker who caused the decoy status is on the team or not, respectively.\n\nr0: Entity pointer",
24197
+ None,
24198
+ )
24199
+
24191
24200
  CheckSpawnThreshold = Symbol(
24192
24201
  [0x1F478],
24193
24202
  [0x22FBFF8],
@@ -24602,6 +24611,33 @@ class EuOverlay29Functions:
24602
24611
  None,
24603
24612
  )
24604
24613
 
24614
+ CheckVariousStatuses2 = Symbol(
24615
+ [0x246C4],
24616
+ [0x2301244],
24617
+ None,
24618
+ "CheckVariousStatuses2",
24619
+ "Returns 0 if none of these conditions holds for the given entity:\nblinded (checked only if blind_check == 1),\nasleep, paused, infatuated, wrapping, wrapped, biding, petrified, or terrified.\n\nr0: Entity pointer\nr1: If true, return 1 if entity is blinded\nreturn: bool",
24620
+ None,
24621
+ )
24622
+
24623
+ CheckVariousConditions = Symbol(
24624
+ [0x249EC],
24625
+ [0x230156C],
24626
+ None,
24627
+ "CheckVariousConditions",
24628
+ "Returns 0 if none of these conditions holds for the given entity: is a rescue client,\ndoesn’t gain experience (a mission client/story teammate?), is a terrified non-team-leader,\nmeets any of the conditions in CheckVariousStatuses2 (with blind_check = 0), is charging a two-turn move.\n\nr0: Entity pointer\nreturn: bool",
24629
+ None,
24630
+ )
24631
+
24632
+ CheckVariousStatuses = Symbol(
24633
+ [0x24B5C],
24634
+ [0x23016DC],
24635
+ None,
24636
+ "CheckVariousStatuses",
24637
+ "Returns 0 if none of these conditions holds for the given entity: asleep, frozen, petrified, biding.\n\nr0: Entity pointer\nreturn: bool",
24638
+ None,
24639
+ )
24640
+
24605
24641
  CanMonsterMoveInDirection = Symbol(
24606
24642
  [0x24D24],
24607
24643
  [0x23018A4],
@@ -24827,6 +24863,15 @@ class EuOverlay29Functions:
24827
24863
  None,
24828
24864
  )
24829
24865
 
24866
+ MonsterCanThrowItems = Symbol(
24867
+ [0x26214],
24868
+ [0x2302D94],
24869
+ None,
24870
+ "MonsterCanThrowItems",
24871
+ "Returns a boolean indicating whether or not the given monster can throw items based on its monster id.\n\nr0: Monster pointer\nreturn: bool",
24872
+ None,
24873
+ )
24874
+
24830
24875
  UpdateStateFlags = Symbol(
24831
24876
  [0x2626C],
24832
24877
  [0x2302DEC],
@@ -25358,6 +25403,33 @@ class EuOverlay29Functions:
25358
25403
  None,
25359
25404
  )
25360
25405
 
25406
+ AiDecideUseItem = Symbol(
25407
+ [0x32808],
25408
+ [0x230F388],
25409
+ None,
25410
+ "AiDecideUseItem",
25411
+ "Decides whether or not an AI should use its held item and updates its action_data fields accordingly.\n\nr0: Entity pointer",
25412
+ None,
25413
+ )
25414
+
25415
+ GetPossibleAiThrownItemDirections = Symbol(
25416
+ [0x32CA4],
25417
+ [0x230F824],
25418
+ None,
25419
+ "GetPossibleAiThrownItemDirections",
25420
+ "If the entity can throw an item at a target in a certain direction,\nadds that direction to AI_THROWN_ITEM_DIRECTIONS and the probability of throwing it to AI_THROWN_ITEM_PROBABILITIES (if it is not already present).\nThe size of the arrays will be stored in AI_THROWN_ITEM_ACTION_CHOICE_COUNT.\nThe caller function will select the direction to throw the item by iterating through the array(s), rolling the probability, and then throwing in that direction if the roll succeeds.\nNothing will be thrown if all rolls fail.\n\nr0: Entity pointer\nr1: Integer in {1, 2}. If 1, target allies; if 2, target enemies.\nr2: Item struct pointer\nr3: If false, will call GetAiUseItemProbability to get the probability of throwing in a certain direction.\nIf true, the added probability will always be 100.",
25421
+ None,
25422
+ )
25423
+
25424
+ GetPossibleAiArcItemTargets = Symbol(
25425
+ [0x32F20],
25426
+ [0x230FAA0],
25427
+ None,
25428
+ "GetPossibleAiArcItemTargets",
25429
+ "Gets the positions of all targets that an AI can hit with an item thrown in an arc, such as a Gravelerock.\nThe number of positions in the array will be stored in AI_THROWN_ITEM_ACTION_CHOICE_COUNT.\n\nr0: Entity pointer\nr1: Item struct pointer\nr2: [output] Array of size 20 for storing position structs\nr3: If false, will roll GetAiUseItemProbability every time a position is checked and not add it if it rolls false.",
25430
+ None,
25431
+ )
25432
+
25361
25433
  TryNonLeaderItemPickUp = Symbol(
25362
25434
  [0x33058],
25363
25435
  [0x230FBD8],
@@ -25367,6 +25439,15 @@ class EuOverlay29Functions:
25367
25439
  None,
25368
25440
  )
25369
25441
 
25442
+ GetExclusiveItemWithEffectFromBag = Symbol(
25443
+ [0x33548],
25444
+ [0x23100C8],
25445
+ None,
25446
+ "GetExclusiveItemWithEffectFromBag",
25447
+ "If an exclusive item with a certain effect is present in the bag and works for the entity, returns true and copies the item struct to the address at item. Otherwise, returns false.\n\nr0: Entity pointer\nr1: exclusive_item_effect_id enum\nr2: [output] Item pointer\nreturn: bool",
25448
+ None,
25449
+ )
25450
+
25370
25451
  AuraBowIsActive = Symbol(
25371
25452
  [0x335BC],
25372
25453
  [0x231013C],
@@ -26924,6 +27005,15 @@ class EuOverlay29Functions:
26924
27005
  None,
26925
27006
  )
26926
27007
 
27008
+ IsChargingAnyTwoTurnMove = Symbol(
27009
+ [0x48504],
27010
+ [0x2325084],
27011
+ None,
27012
+ "IsChargingAnyTwoTurnMove",
27013
+ "Returns a boolean indicating whether or not the given entity is charging any two-turn move.\n\nr0: Entity pointer\nr1: Unused boolean which was supposed to make function return true if the entity is under the effect of Charge (the Electric-type move).\n However, the conditional which uses this boolean will never be activated, as the loop will always terminate before getting to it.\nreturn: bool",
27014
+ None,
27015
+ )
27016
+
26927
27017
  HasMaxGinsengBoost99 = Symbol(
26928
27018
  [0x48680],
26929
27019
  [0x2325200],
@@ -27095,6 +27185,15 @@ class EuOverlay29Functions:
27095
27185
  None,
27096
27186
  )
27097
27187
 
27188
+ CanHitWithRegularAttack = Symbol(
27189
+ [0x56E88],
27190
+ [0x2333A08],
27191
+ None,
27192
+ "CanHitWithRegularAttack",
27193
+ "Returns true if the defender is adjacent to the attacker and can hit them with a regular attack.\nNotably, this check is what prevents ranged moves, moves that cut corners, etc. from being reflected by Magic Coat and Mirror Move.\n\nr0: Entity pointer (attacker)\nr1: Entity pointer (defender)\nreturn: bool",
27194
+ None,
27195
+ )
27196
+
27098
27197
  StatusCheckerCheck = Symbol(
27099
27198
  [0x56F34],
27100
27199
  [0x2333AB4],
@@ -29959,6 +30058,15 @@ class EuOverlay29Data:
29959
30058
  "struct exclusive_item_effect_id_8[8]",
29960
30059
  )
29961
30060
 
30061
+ AI_THROWN_ITEM_ACTION_CHOICE_COUNT = Symbol(
30062
+ [0x7777C],
30063
+ [0x23542FC],
30064
+ 0x4,
30065
+ "AI_THROWN_ITEM_ACTION_CHOICE_COUNT",
30066
+ "[Runtime] Used to store the number of positions output by GetPossibleAiArcItemTargets and the number of directions/probabilities output by GetPossibleAiThrownItemDirections.",
30067
+ "uint32_t",
30068
+ )
30069
+
29962
30070
  EXCL_ITEM_EFFECTS_EVASION_BOOST = Symbol(
29963
30071
  [0x77790],
29964
30072
  [0x2354310],
@@ -31695,6 +31803,33 @@ class EuRamData:
31695
31803
  "struct loaded_attack_sprite_data*",
31696
31804
  )
31697
31805
 
31806
+ AI_THROWN_ITEM_DIRECTION_IS_USED = Symbol(
31807
+ [0x37D5D0],
31808
+ [0x237D5D0],
31809
+ 0x8,
31810
+ "AI_THROWN_ITEM_DIRECTION_IS_USED",
31811
+ "[Runtime] Used in GetPossibleAiThrownItemDirections to indicate whether a certain direction enum value is already being used or not.",
31812
+ "bool[8]",
31813
+ )
31814
+
31815
+ AI_THROWN_ITEM_DIRECTIONS = Symbol(
31816
+ [0x37D5D8],
31817
+ [0x237D5D8],
31818
+ 0x20,
31819
+ "AI_THROWN_ITEM_DIRECTIONS",
31820
+ "[Runtime] Used to store the directions output by GetPossibleAiThrownItemDirections.",
31821
+ "uint32_t[8]",
31822
+ )
31823
+
31824
+ AI_THROWN_ITEM_PROBABILITIES = Symbol(
31825
+ [0x37D5F8],
31826
+ [0x237D5F8],
31827
+ 0x20,
31828
+ "AI_THROWN_ITEM_PROBABILITIES",
31829
+ "[Runtime] Used to store the probabilities matching the directions in THROWN_ITEM_DIRECTIONS.",
31830
+ "uint32_t[8]",
31831
+ )
31832
+
31698
31833
  ROLLOUT_ICE_BALL_MISSED = Symbol(
31699
31834
  None,
31700
31835
  None,
@@ -1739,7 +1739,7 @@ class EuItcmArm9Functions:
1739
1739
  None,
1740
1740
  None,
1741
1741
  "TestItemAiFlag",
1742
- "Used to check the AI flags for an item. Tests bit 7 if r1 is 0, bit 6 if r1 is 1, bit\n5 otherwise.\n\nr0: item ID\nr1: bit_id\nreturn: bool",
1742
+ "Returns a boolean indicating whether the item is consumable, throwable at an ally, or throwable at an enemy, depending on item_flag.\nThe table used for this is inaccessible in the code, as it is loaded from a file in the ROM at runtime.\nBit 7 in the table corresponds to ITEM_FLAG_CONSUMABLE, bit 6 to ITEM_FLAG_THROWABLE_AT_ALLY, and bit 5 to ITEM_FLAG_THROWABLE_AT_ENEMY.\n\nr0: item_id enum\nr1: item_flag enum. Function will test a different allowed AI action depending on the value.\nreturn: bool",
1743
1743
  None,
1744
1744
  )
1745
1745
 
@@ -23613,6 +23613,15 @@ class EuItcmOverlay29Functions:
23613
23613
  None,
23614
23614
  )
23615
23615
 
23616
+ SetDecoyAiTracker = Symbol(
23617
+ None,
23618
+ None,
23619
+ None,
23620
+ "SetDecoyAiTracker",
23621
+ "If there is a decoy on the floor that the entity can see, sets the entity's decoy_ai_tracker to 1 or 2,\ndepending on whether the attacker who caused the decoy status is on the team or not, respectively.\n\nr0: Entity pointer",
23622
+ None,
23623
+ )
23624
+
23616
23625
  CheckSpawnThreshold = Symbol(
23617
23626
  None,
23618
23627
  None,
@@ -24027,6 +24036,33 @@ class EuItcmOverlay29Functions:
24027
24036
  None,
24028
24037
  )
24029
24038
 
24039
+ CheckVariousStatuses2 = Symbol(
24040
+ None,
24041
+ None,
24042
+ None,
24043
+ "CheckVariousStatuses2",
24044
+ "Returns 0 if none of these conditions holds for the given entity:\nblinded (checked only if blind_check == 1),\nasleep, paused, infatuated, wrapping, wrapped, biding, petrified, or terrified.\n\nr0: Entity pointer\nr1: If true, return 1 if entity is blinded\nreturn: bool",
24045
+ None,
24046
+ )
24047
+
24048
+ CheckVariousConditions = Symbol(
24049
+ None,
24050
+ None,
24051
+ None,
24052
+ "CheckVariousConditions",
24053
+ "Returns 0 if none of these conditions holds for the given entity: is a rescue client,\ndoesn’t gain experience (a mission client/story teammate?), is a terrified non-team-leader,\nmeets any of the conditions in CheckVariousStatuses2 (with blind_check = 0), is charging a two-turn move.\n\nr0: Entity pointer\nreturn: bool",
24054
+ None,
24055
+ )
24056
+
24057
+ CheckVariousStatuses = Symbol(
24058
+ None,
24059
+ None,
24060
+ None,
24061
+ "CheckVariousStatuses",
24062
+ "Returns 0 if none of these conditions holds for the given entity: asleep, frozen, petrified, biding.\n\nr0: Entity pointer\nreturn: bool",
24063
+ None,
24064
+ )
24065
+
24030
24066
  CanMonsterMoveInDirection = Symbol(
24031
24067
  None,
24032
24068
  None,
@@ -24252,6 +24288,15 @@ class EuItcmOverlay29Functions:
24252
24288
  None,
24253
24289
  )
24254
24290
 
24291
+ MonsterCanThrowItems = Symbol(
24292
+ None,
24293
+ None,
24294
+ None,
24295
+ "MonsterCanThrowItems",
24296
+ "Returns a boolean indicating whether or not the given monster can throw items based on its monster id.\n\nr0: Monster pointer\nreturn: bool",
24297
+ None,
24298
+ )
24299
+
24255
24300
  UpdateStateFlags = Symbol(
24256
24301
  None,
24257
24302
  None,
@@ -24783,6 +24828,33 @@ class EuItcmOverlay29Functions:
24783
24828
  None,
24784
24829
  )
24785
24830
 
24831
+ AiDecideUseItem = Symbol(
24832
+ None,
24833
+ None,
24834
+ None,
24835
+ "AiDecideUseItem",
24836
+ "Decides whether or not an AI should use its held item and updates its action_data fields accordingly.\n\nr0: Entity pointer",
24837
+ None,
24838
+ )
24839
+
24840
+ GetPossibleAiThrownItemDirections = Symbol(
24841
+ None,
24842
+ None,
24843
+ None,
24844
+ "GetPossibleAiThrownItemDirections",
24845
+ "If the entity can throw an item at a target in a certain direction,\nadds that direction to AI_THROWN_ITEM_DIRECTIONS and the probability of throwing it to AI_THROWN_ITEM_PROBABILITIES (if it is not already present).\nThe size of the arrays will be stored in AI_THROWN_ITEM_ACTION_CHOICE_COUNT.\nThe caller function will select the direction to throw the item by iterating through the array(s), rolling the probability, and then throwing in that direction if the roll succeeds.\nNothing will be thrown if all rolls fail.\n\nr0: Entity pointer\nr1: Integer in {1, 2}. If 1, target allies; if 2, target enemies.\nr2: Item struct pointer\nr3: If false, will call GetAiUseItemProbability to get the probability of throwing in a certain direction.\nIf true, the added probability will always be 100.",
24846
+ None,
24847
+ )
24848
+
24849
+ GetPossibleAiArcItemTargets = Symbol(
24850
+ None,
24851
+ None,
24852
+ None,
24853
+ "GetPossibleAiArcItemTargets",
24854
+ "Gets the positions of all targets that an AI can hit with an item thrown in an arc, such as a Gravelerock.\nThe number of positions in the array will be stored in AI_THROWN_ITEM_ACTION_CHOICE_COUNT.\n\nr0: Entity pointer\nr1: Item struct pointer\nr2: [output] Array of size 20 for storing position structs\nr3: If false, will roll GetAiUseItemProbability every time a position is checked and not add it if it rolls false.",
24855
+ None,
24856
+ )
24857
+
24786
24858
  TryNonLeaderItemPickUp = Symbol(
24787
24859
  None,
24788
24860
  None,
@@ -24792,6 +24864,15 @@ class EuItcmOverlay29Functions:
24792
24864
  None,
24793
24865
  )
24794
24866
 
24867
+ GetExclusiveItemWithEffectFromBag = Symbol(
24868
+ None,
24869
+ None,
24870
+ None,
24871
+ "GetExclusiveItemWithEffectFromBag",
24872
+ "If an exclusive item with a certain effect is present in the bag and works for the entity, returns true and copies the item struct to the address at item. Otherwise, returns false.\n\nr0: Entity pointer\nr1: exclusive_item_effect_id enum\nr2: [output] Item pointer\nreturn: bool",
24873
+ None,
24874
+ )
24875
+
24795
24876
  AuraBowIsActive = Symbol(
24796
24877
  None,
24797
24878
  None,
@@ -26349,6 +26430,15 @@ class EuItcmOverlay29Functions:
26349
26430
  None,
26350
26431
  )
26351
26432
 
26433
+ IsChargingAnyTwoTurnMove = Symbol(
26434
+ None,
26435
+ None,
26436
+ None,
26437
+ "IsChargingAnyTwoTurnMove",
26438
+ "Returns a boolean indicating whether or not the given entity is charging any two-turn move.\n\nr0: Entity pointer\nr1: Unused boolean which was supposed to make function return true if the entity is under the effect of Charge (the Electric-type move).\n However, the conditional which uses this boolean will never be activated, as the loop will always terminate before getting to it.\nreturn: bool",
26439
+ None,
26440
+ )
26441
+
26352
26442
  HasMaxGinsengBoost99 = Symbol(
26353
26443
  None,
26354
26444
  None,
@@ -26520,6 +26610,15 @@ class EuItcmOverlay29Functions:
26520
26610
  None,
26521
26611
  )
26522
26612
 
26613
+ CanHitWithRegularAttack = Symbol(
26614
+ None,
26615
+ None,
26616
+ None,
26617
+ "CanHitWithRegularAttack",
26618
+ "Returns true if the defender is adjacent to the attacker and can hit them with a regular attack.\nNotably, this check is what prevents ranged moves, moves that cut corners, etc. from being reflected by Magic Coat and Mirror Move.\n\nr0: Entity pointer (attacker)\nr1: Entity pointer (defender)\nreturn: bool",
26619
+ None,
26620
+ )
26621
+
26523
26622
  StatusCheckerCheck = Symbol(
26524
26623
  None,
26525
26624
  None,
@@ -29281,6 +29380,15 @@ class EuItcmOverlay29Data:
29281
29380
  "struct exclusive_item_effect_id_8[8]",
29282
29381
  )
29283
29382
 
29383
+ AI_THROWN_ITEM_ACTION_CHOICE_COUNT = Symbol(
29384
+ None,
29385
+ None,
29386
+ None,
29387
+ "AI_THROWN_ITEM_ACTION_CHOICE_COUNT",
29388
+ "[Runtime] Used to store the number of positions output by GetPossibleAiArcItemTargets and the number of directions/probabilities output by GetPossibleAiThrownItemDirections.",
29389
+ "uint32_t",
29390
+ )
29391
+
29284
29392
  EXCL_ITEM_EFFECTS_EVASION_BOOST = Symbol(
29285
29393
  None,
29286
29394
  None,
@@ -30973,6 +31081,33 @@ class EuItcmRamData:
30973
31081
  "struct loaded_attack_sprite_data*",
30974
31082
  )
30975
31083
 
31084
+ AI_THROWN_ITEM_DIRECTION_IS_USED = Symbol(
31085
+ None,
31086
+ None,
31087
+ None,
31088
+ "AI_THROWN_ITEM_DIRECTION_IS_USED",
31089
+ "[Runtime] Used in GetPossibleAiThrownItemDirections to indicate whether a certain direction enum value is already being used or not.",
31090
+ "bool[8]",
31091
+ )
31092
+
31093
+ AI_THROWN_ITEM_DIRECTIONS = Symbol(
31094
+ None,
31095
+ None,
31096
+ None,
31097
+ "AI_THROWN_ITEM_DIRECTIONS",
31098
+ "[Runtime] Used to store the directions output by GetPossibleAiThrownItemDirections.",
31099
+ "uint32_t[8]",
31100
+ )
31101
+
31102
+ AI_THROWN_ITEM_PROBABILITIES = Symbol(
31103
+ None,
31104
+ None,
31105
+ None,
31106
+ "AI_THROWN_ITEM_PROBABILITIES",
31107
+ "[Runtime] Used to store the probabilities matching the directions in THROWN_ITEM_DIRECTIONS.",
31108
+ "uint32_t[8]",
31109
+ )
31110
+
30976
31111
  ROLLOUT_ICE_BALL_MISSED = Symbol(
30977
31112
  None,
30978
31113
  None,
pmdsky_debug_py/jp.py CHANGED
@@ -1785,7 +1785,7 @@ class JpArm9Functions:
1785
1785
  [0x200EAD0],
1786
1786
  None,
1787
1787
  "TestItemAiFlag",
1788
- "Used to check the AI flags for an item. Tests bit 7 if r1 is 0, bit 6 if r1 is 1, bit\n5 otherwise.\n\nr0: item ID\nr1: bit_id\nreturn: bool",
1788
+ "Returns a boolean indicating whether the item is consumable, throwable at an ally, or throwable at an enemy, depending on item_flag.\nThe table used for this is inaccessible in the code, as it is loaded from a file in the ROM at runtime.\nBit 7 in the table corresponds to ITEM_FLAG_CONSUMABLE, bit 6 to ITEM_FLAG_THROWABLE_AT_ALLY, and bit 5 to ITEM_FLAG_THROWABLE_AT_ENEMY.\n\nr0: item_id enum\nr1: item_flag enum. Function will test a different allowed AI action depending on the value.\nreturn: bool",
1789
1789
  None,
1790
1790
  )
1791
1791
 
@@ -24179,6 +24179,15 @@ class JpOverlay29Functions:
24179
24179
  None,
24180
24180
  )
24181
24181
 
24182
+ SetDecoyAiTracker = Symbol(
24183
+ None,
24184
+ None,
24185
+ None,
24186
+ "SetDecoyAiTracker",
24187
+ "If there is a decoy on the floor that the entity can see, sets the entity's decoy_ai_tracker to 1 or 2,\ndepending on whether the attacker who caused the decoy status is on the team or not, respectively.\n\nr0: Entity pointer",
24188
+ None,
24189
+ )
24190
+
24182
24191
  CheckSpawnThreshold = Symbol(
24183
24192
  [0x1F1E0],
24184
24193
  [0x22FCAC0],
@@ -24593,6 +24602,33 @@ class JpOverlay29Functions:
24593
24602
  None,
24594
24603
  )
24595
24604
 
24605
+ CheckVariousStatuses2 = Symbol(
24606
+ [0x2431C],
24607
+ [0x2301BFC],
24608
+ None,
24609
+ "CheckVariousStatuses2",
24610
+ "Returns 0 if none of these conditions holds for the given entity:\nblinded (checked only if blind_check == 1),\nasleep, paused, infatuated, wrapping, wrapped, biding, petrified, or terrified.\n\nr0: Entity pointer\nr1: If true, return 1 if entity is blinded\nreturn: bool",
24611
+ None,
24612
+ )
24613
+
24614
+ CheckVariousConditions = Symbol(
24615
+ [0x24644],
24616
+ [0x2301F24],
24617
+ None,
24618
+ "CheckVariousConditions",
24619
+ "Returns 0 if none of these conditions holds for the given entity: is a rescue client,\ndoesn’t gain experience (a mission client/story teammate?), is a terrified non-team-leader,\nmeets any of the conditions in CheckVariousStatuses2 (with blind_check = 0), is charging a two-turn move.\n\nr0: Entity pointer\nreturn: bool",
24620
+ None,
24621
+ )
24622
+
24623
+ CheckVariousStatuses = Symbol(
24624
+ [0x247B4],
24625
+ [0x2302094],
24626
+ None,
24627
+ "CheckVariousStatuses",
24628
+ "Returns 0 if none of these conditions holds for the given entity: asleep, frozen, petrified, biding.\n\nr0: Entity pointer\nreturn: bool",
24629
+ None,
24630
+ )
24631
+
24596
24632
  CanMonsterMoveInDirection = Symbol(
24597
24633
  [0x2497C],
24598
24634
  [0x230225C],
@@ -24818,6 +24854,15 @@ class JpOverlay29Functions:
24818
24854
  None,
24819
24855
  )
24820
24856
 
24857
+ MonsterCanThrowItems = Symbol(
24858
+ [0x25FD8],
24859
+ [0x23038B8],
24860
+ None,
24861
+ "MonsterCanThrowItems",
24862
+ "Returns a boolean indicating whether or not the given monster can throw items based on its monster id.\n\nr0: Monster pointer\nreturn: bool",
24863
+ None,
24864
+ )
24865
+
24821
24866
  UpdateStateFlags = Symbol(
24822
24867
  [0x26030],
24823
24868
  [0x2303910],
@@ -25349,6 +25394,33 @@ class JpOverlay29Functions:
25349
25394
  None,
25350
25395
  )
25351
25396
 
25397
+ AiDecideUseItem = Symbol(
25398
+ [0x32570],
25399
+ [0x230FE50],
25400
+ None,
25401
+ "AiDecideUseItem",
25402
+ "Decides whether or not an AI should use its held item and updates its action_data fields accordingly.\n\nr0: Entity pointer",
25403
+ None,
25404
+ )
25405
+
25406
+ GetPossibleAiThrownItemDirections = Symbol(
25407
+ [0x32A0C],
25408
+ [0x23102EC],
25409
+ None,
25410
+ "GetPossibleAiThrownItemDirections",
25411
+ "If the entity can throw an item at a target in a certain direction,\nadds that direction to AI_THROWN_ITEM_DIRECTIONS and the probability of throwing it to AI_THROWN_ITEM_PROBABILITIES (if it is not already present).\nThe size of the arrays will be stored in AI_THROWN_ITEM_ACTION_CHOICE_COUNT.\nThe caller function will select the direction to throw the item by iterating through the array(s), rolling the probability, and then throwing in that direction if the roll succeeds.\nNothing will be thrown if all rolls fail.\n\nr0: Entity pointer\nr1: Integer in {1, 2}. If 1, target allies; if 2, target enemies.\nr2: Item struct pointer\nr3: If false, will call GetAiUseItemProbability to get the probability of throwing in a certain direction.\nIf true, the added probability will always be 100.",
25412
+ None,
25413
+ )
25414
+
25415
+ GetPossibleAiArcItemTargets = Symbol(
25416
+ [0x32C88],
25417
+ [0x2310568],
25418
+ None,
25419
+ "GetPossibleAiArcItemTargets",
25420
+ "Gets the positions of all targets that an AI can hit with an item thrown in an arc, such as a Gravelerock.\nThe number of positions in the array will be stored in AI_THROWN_ITEM_ACTION_CHOICE_COUNT.\n\nr0: Entity pointer\nr1: Item struct pointer\nr2: [output] Array of size 20 for storing position structs\nr3: If false, will roll GetAiUseItemProbability every time a position is checked and not add it if it rolls false.",
25421
+ None,
25422
+ )
25423
+
25352
25424
  TryNonLeaderItemPickUp = Symbol(
25353
25425
  [0x32DC0],
25354
25426
  [0x23106A0],
@@ -25358,6 +25430,15 @@ class JpOverlay29Functions:
25358
25430
  None,
25359
25431
  )
25360
25432
 
25433
+ GetExclusiveItemWithEffectFromBag = Symbol(
25434
+ [0x332B0],
25435
+ [0x2310B90],
25436
+ None,
25437
+ "GetExclusiveItemWithEffectFromBag",
25438
+ "If an exclusive item with a certain effect is present in the bag and works for the entity, returns true and copies the item struct to the address at item. Otherwise, returns false.\n\nr0: Entity pointer\nr1: exclusive_item_effect_id enum\nr2: [output] Item pointer\nreturn: bool",
25439
+ None,
25440
+ )
25441
+
25361
25442
  AuraBowIsActive = Symbol(
25362
25443
  [0x33324],
25363
25444
  [0x2310C04],
@@ -26915,6 +26996,15 @@ class JpOverlay29Functions:
26915
26996
  None,
26916
26997
  )
26917
26998
 
26999
+ IsChargingAnyTwoTurnMove = Symbol(
27000
+ [0x481CC],
27001
+ [0x2325AAC],
27002
+ None,
27003
+ "IsChargingAnyTwoTurnMove",
27004
+ "Returns a boolean indicating whether or not the given entity is charging any two-turn move.\n\nr0: Entity pointer\nr1: Unused boolean which was supposed to make function return true if the entity is under the effect of Charge (the Electric-type move).\n However, the conditional which uses this boolean will never be activated, as the loop will always terminate before getting to it.\nreturn: bool",
27005
+ None,
27006
+ )
27007
+
26918
27008
  HasMaxGinsengBoost99 = Symbol(
26919
27009
  [0x48348],
26920
27010
  [0x2325C28],
@@ -27086,6 +27176,15 @@ class JpOverlay29Functions:
27086
27176
  None,
27087
27177
  )
27088
27178
 
27179
+ CanHitWithRegularAttack = Symbol(
27180
+ [0x56AD4],
27181
+ [0x23343B4],
27182
+ None,
27183
+ "CanHitWithRegularAttack",
27184
+ "Returns true if the defender is adjacent to the attacker and can hit them with a regular attack.\nNotably, this check is what prevents ranged moves, moves that cut corners, etc. from being reflected by Magic Coat and Mirror Move.\n\nr0: Entity pointer (attacker)\nr1: Entity pointer (defender)\nreturn: bool",
27185
+ None,
27186
+ )
27187
+
27089
27188
  StatusCheckerCheck = Symbol(
27090
27189
  [0x56B80],
27091
27190
  [0x2334460],
@@ -29852,6 +29951,15 @@ class JpOverlay29Data:
29852
29951
  "struct exclusive_item_effect_id_8[8]",
29853
29952
  )
29854
29953
 
29954
+ AI_THROWN_ITEM_ACTION_CHOICE_COUNT = Symbol(
29955
+ [0x7709C],
29956
+ [0x235497C],
29957
+ None,
29958
+ "AI_THROWN_ITEM_ACTION_CHOICE_COUNT",
29959
+ "[Runtime] Used to store the number of positions output by GetPossibleAiArcItemTargets and the number of directions/probabilities output by GetPossibleAiThrownItemDirections.",
29960
+ "uint32_t",
29961
+ )
29962
+
29855
29963
  EXCL_ITEM_EFFECTS_EVASION_BOOST = Symbol(
29856
29964
  [0x770B0],
29857
29965
  [0x2354990],
@@ -31583,6 +31691,33 @@ class JpRamData:
31583
31691
  "struct loaded_attack_sprite_data*",
31584
31692
  )
31585
31693
 
31694
+ AI_THROWN_ITEM_DIRECTION_IS_USED = Symbol(
31695
+ None,
31696
+ None,
31697
+ None,
31698
+ "AI_THROWN_ITEM_DIRECTION_IS_USED",
31699
+ "[Runtime] Used in GetPossibleAiThrownItemDirections to indicate whether a certain direction enum value is already being used or not.",
31700
+ "bool[8]",
31701
+ )
31702
+
31703
+ AI_THROWN_ITEM_DIRECTIONS = Symbol(
31704
+ None,
31705
+ None,
31706
+ None,
31707
+ "AI_THROWN_ITEM_DIRECTIONS",
31708
+ "[Runtime] Used to store the directions output by GetPossibleAiThrownItemDirections.",
31709
+ "uint32_t[8]",
31710
+ )
31711
+
31712
+ AI_THROWN_ITEM_PROBABILITIES = Symbol(
31713
+ None,
31714
+ None,
31715
+ None,
31716
+ "AI_THROWN_ITEM_PROBABILITIES",
31717
+ "[Runtime] Used to store the probabilities matching the directions in THROWN_ITEM_DIRECTIONS.",
31718
+ "uint32_t[8]",
31719
+ )
31720
+
31586
31721
  ROLLOUT_ICE_BALL_MISSED = Symbol(
31587
31722
  None,
31588
31723
  None,