diff --git a/asm/code_80521D0.s b/asm/code_80521D0.s index dd8001b1e..131f38939 100644 --- a/asm/code_80521D0.s +++ b/asm/code_80521D0.s @@ -2541,7 +2541,7 @@ _080537F8: adds r1, r7, 0 movs r2, 0x1 movs r3, 0 - bl CanTarget + bl GetTreatmentBetweenMonsters lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -3127,7 +3127,7 @@ _08053CD0: adds r1, r5, 0 movs r2, 0x1 movs r3, 0 - bl CanTarget + bl GetTreatmentBetweenMonsters lsls r0, 24 cmp r0, 0 bne _08053CEC @@ -3274,7 +3274,7 @@ _08053DF2: adds r1, r5, 0 movs r2, 0x1 movs r3, 0 - bl CanTarget + bl GetTreatmentBetweenMonsters lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -4532,7 +4532,7 @@ _08054BD8: adds r1, r5, 0 mov r2, r8 mov r3, r9 - bl SandstormMoveAction + bl SandstormMoveAction bl _080554BA _08054BE8: adds r0, r7, 0 @@ -5250,7 +5250,7 @@ _08055190: adds r1, r5, 0 mov r2, r8 mov r3, r9 - bl RainDanceMoveAction + bl RainDanceMoveAction b _080554BA _0805519E: adds r0, r7, 0 @@ -5313,7 +5313,7 @@ _0805520E: adds r1, r5, 0 mov r2, r8 mov r3, r9 - bl SunnyDayMoveAction + bl SunnyDayMoveAction b _080554BA _0805521C: adds r0, r7, 0 @@ -5397,7 +5397,7 @@ _080552B6: adds r1, r5, 0 mov r2, r8 mov r3, r9 - bl HailMoveAction + bl HailMoveAction b _080554BA _080552C4: adds r0, r7, 0 @@ -9066,7 +9066,7 @@ _08056FD0: adds r1, r7, 0 movs r2, 0x1 movs r3, 0 - bl CanTarget + bl GetTreatmentBetweenMonsters lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -9079,7 +9079,7 @@ _08056FE6: adds r1, r7, 0 movs r2, 0x1 movs r3, 0 - bl CanTarget + bl GetTreatmentBetweenMonsters lsls r0, 24 cmp r0, 0 bne _0805702E @@ -9099,7 +9099,7 @@ _0805700C: adds r1, r7, 0 movs r2, 0x1 movs r3, 0 - bl CanTarget + bl GetTreatmentBetweenMonsters lsls r0, 24 cmp r0, 0 bne _0805702E diff --git a/asm/code_805D8C8.s b/asm/code_805D8C8.s index de0434a08..2734a06c7 100644 --- a/asm/code_805D8C8.s +++ b/asm/code_805D8C8.s @@ -863,7 +863,7 @@ _080620C4: bl sub_8044F5C ldr r0, [sp, 0x110] movs r1, 0x1 - bl CannotMove + bl CheckVariousStatuses2 lsls r0, 24 cmp r0, 0 beq _08062102 diff --git a/asm/code_8066D04.s b/asm/code_8066D04.s index 2adae1258..ee46e283c 100644 --- a/asm/code_8066D04.s +++ b/asm/code_8066D04.s @@ -926,7 +926,7 @@ _08067594: adds r1, r5, 0 movs r2, 0x1 movs r3, 0 - bl CanTarget + bl GetTreatmentBetweenMonsters lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -937,7 +937,7 @@ _080675AA: adds r1, r6, 0 movs r2, 0x1 movs r3, 0 - bl CanTarget + bl GetTreatmentBetweenMonsters lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -966,7 +966,7 @@ _080675C0: beq _08067600 adds r0, r5, 0 movs r1, 0x1 - bl CannotMove + bl CheckVariousStatuses2 lsls r0, 24 cmp r0, 0 beq _08067610 diff --git a/asm/code_8069E0C.s b/asm/code_8069E0C.s index c979fde12..2d112a57d 100644 --- a/asm/code_8069E0C.s +++ b/asm/code_8069E0C.s @@ -758,12 +758,12 @@ _0806A8C8: beq _0806A90E adds r0, r4, 0 movs r1, 0x1 - bl CannotMove + bl CheckVariousStatuses2 lsls r0, 24 cmp r0, 0 beq _0806A8EE adds r0, r4, 0 - bl HasStatusThatPreventsActing + bl CheckVariousStatuses lsls r0, 24 cmp r0, 0 bne _0806A90E diff --git a/asm/code_806CD90.s b/asm/code_806CD90.s index cfe204abd..667abd2a4 100644 --- a/asm/code_806CD90.s +++ b/asm/code_806CD90.s @@ -71,7 +71,7 @@ _0806D088: ldr r0, [sp, 0x44] mov r9, r0 adds r0, r5, 0 - bl HasStatusThatPreventsActing + bl CheckVariousStatuses lsls r0, 24 cmp r0, 0 bne _0806D0A2 diff --git a/asm/code_8073CF0.s b/asm/code_8073CF0.s index 97bdd09f3..cdd251e46 100644 --- a/asm/code_8073CF0.s +++ b/asm/code_8073CF0.s @@ -1632,7 +1632,7 @@ _08074A46: strb r0, [r7] adds r0, r5, 0 movs r1, 0 - bl CannotMove + bl CheckVariousStatuses2 lsls r0, 24 cmp r0, 0 bne _08074AD4 @@ -1643,7 +1643,7 @@ _08074A46: cmp r0, 0 bne _08074AD4 adds r0, r5, 0 - bl HasStatusThatPreventsActing + bl CheckVariousStatuses lsls r0, 24 lsrs r6, r0, 24 cmp r6, 0 @@ -2659,12 +2659,12 @@ _0807524E: beq _0807534C adds r0, r5, 0 movs r1, 0x1 - bl CannotMove + bl CheckVariousStatuses2 lsls r0, 24 cmp r0, 0 beq _080752B2 adds r0, r5, 0 - bl HasStatusThatPreventsActing + bl CheckVariousStatuses lsls r0, 24 cmp r0, 0 bne _0807534C diff --git a/asm/code_807E5AC.s b/asm/code_807E5AC.s index 36865c17a..30e8ace2f 100644 --- a/asm/code_807E5AC.s +++ b/asm/code_807E5AC.s @@ -1823,7 +1823,7 @@ _0807F4E4: adds r1, r4, 0 movs r2, 0 movs r3, 0x1 - bl CanTarget + bl GetTreatmentBetweenMonsters lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 @@ -1839,7 +1839,7 @@ _0807F50C: adds r1, r4, 0 movs r2, 0 movs r3, 0x1 - bl CanTarget + bl GetTreatmentBetweenMonsters lsls r0, 24 cmp r0, 0 bne _0807F602 diff --git a/asm/code_8083654.s b/asm/code_8083654.s index 09d394f40..203bf7dfc 100644 --- a/asm/code_8083654.s +++ b/asm/code_8083654.s @@ -4,7 +4,7 @@ .syntax unified .text - + thumb_func_start sub_8083660 sub_8083660: push {r4-r7,lr} @@ -377,7 +377,7 @@ sub_8083904: ldrb r6, [r5] mov r0, r10 movs r1, 0x1 - bl CannotMove + bl CheckVariousStatuses2 lsls r0, 24 cmp r0, 0 beq _08083954 @@ -507,7 +507,7 @@ _08083A00: adds r1, r4, 0 movs r2, 0 movs r3, 0 - bl CanTarget + bl GetTreatmentBetweenMonsters lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 diff --git a/data/monster/monster_data.json b/data/monster/monster_data.json index 8901335a4..028892531 100644 --- a/data/monster/monster_data.json +++ b/data/monster/monster_data.json @@ -31,7 +31,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "dexInternal": [ 0, 0 @@ -76,7 +76,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "dexInternal": [ 1, 1 @@ -120,7 +120,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "preEvolution": { "evolveFrom": "MONSTER_BULBASAUR", "evolveType": "EVOLVE_TYPE_LEVEL" @@ -171,7 +171,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "preEvolution": { "evolveFrom": "MONSTER_IVYSAUR", "evolveType": "EVOLVE_TYPE_LEVEL" @@ -223,7 +223,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "dexInternal": [ 4, 4 @@ -267,7 +267,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "preEvolution": { "evolveFrom": "MONSTER_CHARMANDER", "evolveType": "EVOLVE_TYPE_LEVEL" @@ -320,7 +320,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "preEvolution": { "evolveFrom": "MONSTER_CHARMELEON", "evolveType": "EVOLVE_TYPE_LEVEL" @@ -372,7 +372,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "dexInternal": [ 7, 7 @@ -416,7 +416,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "preEvolution": { "evolveFrom": "MONSTER_SQUIRTLE", "evolveType": "EVOLVE_TYPE_LEVEL" @@ -468,7 +468,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "preEvolution": { "evolveFrom": "MONSTER_WARTORTLE", "evolveType": "EVOLVE_TYPE_LEVEL" @@ -519,7 +519,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "dexInternal": [ 10, 10 @@ -563,7 +563,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "preEvolution": { "evolveFrom": "MONSTER_CATERPIE", "evolveType": "EVOLVE_TYPE_LEVEL" @@ -616,7 +616,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "preEvolution": { "evolveFrom": "MONSTER_METAPOD", "evolveType": "EVOLVE_TYPE_LEVEL" @@ -667,7 +667,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "dexInternal": [ 13, 13 @@ -711,7 +711,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "preEvolution": { "evolveFrom": "MONSTER_WEEDLE", "evolveType": "EVOLVE_TYPE_LEVEL" @@ -763,7 +763,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "preEvolution": { "evolveFrom": "MONSTER_KAKUNA", "evolveType": "EVOLVE_TYPE_LEVEL" @@ -814,7 +814,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "dexInternal": [ 16, 16 @@ -858,7 +858,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "preEvolution": { "evolveFrom": "MONSTER_PIDGEY", "evolveType": "EVOLVE_TYPE_LEVEL" @@ -909,7 +909,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "preEvolution": { "evolveFrom": "MONSTER_PIDGEOTTO", "evolveType": "EVOLVE_TYPE_LEVEL" @@ -960,7 +960,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "dexInternal": [ 19, 19 @@ -1004,7 +1004,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "preEvolution": { "evolveFrom": "MONSTER_RATTATA", "evolveType": "EVOLVE_TYPE_LEVEL" @@ -1055,7 +1055,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "dexInternal": [ 21, 21 @@ -1099,7 +1099,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "preEvolution": { "evolveFrom": "MONSTER_SPEAROW", "evolveType": "EVOLVE_TYPE_LEVEL" @@ -1151,7 +1151,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "dexInternal": [ 23, 23 @@ -1195,7 +1195,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "preEvolution": { "evolveFrom": "MONSTER_EKANS", "evolveType": "EVOLVE_TYPE_LEVEL" @@ -1246,7 +1246,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "preEvolution": { "evolveFrom": "MONSTER_PICHU", "evolveType": "EVOLVE_TYPE_IQ" @@ -1296,7 +1296,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "preEvolution": { "evolveFrom": "MONSTER_PIKACHU", "evolveType": "EVOLVE_TYPE_ITEM" @@ -1346,7 +1346,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "dexInternal": [ 27, 27 @@ -1389,7 +1389,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "preEvolution": { "evolveFrom": "MONSTER_SANDSHREW", "evolveType": "EVOLVE_TYPE_LEVEL" @@ -1439,7 +1439,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "dexInternal": [ 29, 29 @@ -1482,7 +1482,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "preEvolution": { "evolveFrom": "MONSTER_NIDORAN_F", "evolveType": "EVOLVE_TYPE_LEVEL" @@ -1533,7 +1533,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "preEvolution": { "evolveFrom": "MONSTER_NIDORINA", "evolveType": "EVOLVE_TYPE_ITEM" @@ -1583,7 +1583,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "dexInternal": [ 32, 32 @@ -1626,7 +1626,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "preEvolution": { "evolveFrom": "MONSTER_NIDORAN_M", "evolveType": "EVOLVE_TYPE_LEVEL" @@ -1677,7 +1677,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "preEvolution": { "evolveFrom": "MONSTER_NIDORINO", "evolveType": "EVOLVE_TYPE_ITEM" @@ -1727,7 +1727,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "preEvolution": { "evolveFrom": "MONSTER_CLEFFA", "evolveType": "EVOLVE_TYPE_IQ" @@ -1777,7 +1777,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "preEvolution": { "evolveFrom": "MONSTER_CLEFAIRY", "evolveType": "EVOLVE_TYPE_ITEM" @@ -1828,7 +1828,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "dexInternal": [ 37, 37 @@ -1873,7 +1873,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "preEvolution": { "evolveFrom": "MONSTER_VULPIX", "evolveType": "EVOLVE_TYPE_ITEM" @@ -1923,7 +1923,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "preEvolution": { "evolveFrom": "MONSTER_IGGLYBUFF", "evolveType": "EVOLVE_TYPE_IQ" @@ -1974,7 +1974,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "preEvolution": { "evolveFrom": "MONSTER_JIGGLYPUFF", "evolveType": "EVOLVE_TYPE_ITEM" @@ -2026,7 +2026,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "dexInternal": [ 41, 41 @@ -2071,7 +2071,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "preEvolution": { "evolveFrom": "MONSTER_ZUBAT", "evolveType": "EVOLVE_TYPE_LEVEL" @@ -2122,7 +2122,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "dexInternal": [ 43, 43 @@ -2166,7 +2166,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "preEvolution": { "evolveFrom": "MONSTER_ODDISH", "evolveType": "EVOLVE_TYPE_LEVEL" @@ -2217,7 +2217,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "preEvolution": { "evolveFrom": "MONSTER_GLOOM", "evolveType": "EVOLVE_TYPE_ITEM" @@ -2268,7 +2268,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "dexInternal": [ 46, 46 @@ -2312,7 +2312,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "preEvolution": { "evolveFrom": "MONSTER_PARAS", "evolveType": "EVOLVE_TYPE_LEVEL" @@ -2363,7 +2363,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "dexInternal": [ 48, 48 @@ -2408,7 +2408,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "preEvolution": { "evolveFrom": "MONSTER_VENONAT", "evolveType": "EVOLVE_TYPE_LEVEL" @@ -2460,7 +2460,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "dexInternal": [ 50, 50 @@ -2505,7 +2505,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "preEvolution": { "evolveFrom": "MONSTER_DIGLETT", "evolveType": "EVOLVE_TYPE_LEVEL" @@ -2556,7 +2556,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "dexInternal": [ 52, 52 @@ -2600,7 +2600,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "preEvolution": { "evolveFrom": "MONSTER_MEOWTH", "evolveType": "EVOLVE_TYPE_LEVEL" @@ -2653,7 +2653,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "dexInternal": [ 54, 54 @@ -2698,7 +2698,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "preEvolution": { "evolveFrom": "MONSTER_PSYDUCK", "evolveType": "EVOLVE_TYPE_LEVEL" @@ -2749,7 +2749,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "dexInternal": [ 56, 56 @@ -2792,7 +2792,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "preEvolution": { "evolveFrom": "MONSTER_MANKEY", "evolveType": "EVOLVE_TYPE_LEVEL" @@ -2844,7 +2844,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "dexInternal": [ 58, 58 @@ -2889,7 +2889,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "preEvolution": { "evolveFrom": "MONSTER_GROWLITHE", "evolveType": "EVOLVE_TYPE_ITEM" @@ -2941,7 +2941,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "dexInternal": [ 60, 60 @@ -2986,7 +2986,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "preEvolution": { "evolveFrom": "MONSTER_POLIWAG", "evolveType": "EVOLVE_TYPE_LEVEL" @@ -3039,7 +3039,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "preEvolution": { "evolveFrom": "MONSTER_POLIWHIRL", "evolveType": "EVOLVE_TYPE_ITEM" @@ -3091,7 +3091,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "dexInternal": [ 63, 63 @@ -3135,7 +3135,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "preEvolution": { "evolveFrom": "MONSTER_ABRA", "evolveType": "EVOLVE_TYPE_LEVEL" @@ -3187,7 +3187,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "preEvolution": { "evolveFrom": "MONSTER_KADABRA", "evolveType": "EVOLVE_TYPE_LINK_CABLE" @@ -3239,7 +3239,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "dexInternal": [ 66, 66 @@ -3282,7 +3282,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "preEvolution": { "evolveFrom": "MONSTER_MACHOP", "evolveType": "EVOLVE_TYPE_LEVEL" @@ -3332,7 +3332,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "preEvolution": { "evolveFrom": "MONSTER_MACHOKE", "evolveType": "EVOLVE_TYPE_LINK_CABLE" @@ -3385,7 +3385,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "dexInternal": [ 69, 69 @@ -3429,7 +3429,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "preEvolution": { "evolveFrom": "MONSTER_BELLSPROUT", "evolveType": "EVOLVE_TYPE_LEVEL" @@ -3480,7 +3480,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "preEvolution": { "evolveFrom": "MONSTER_WEEPINBELL", "evolveType": "EVOLVE_TYPE_ITEM" @@ -3533,7 +3533,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "dexInternal": [ 72, 72 @@ -3579,7 +3579,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "preEvolution": { "evolveFrom": "MONSTER_TENTACOOL", "evolveType": "EVOLVE_TYPE_LEVEL" @@ -3631,7 +3631,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "dexInternal": [ 74, 74 @@ -3676,7 +3676,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "preEvolution": { "evolveFrom": "MONSTER_GEODUDE", "evolveType": "EVOLVE_TYPE_LEVEL" @@ -3729,7 +3729,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "preEvolution": { "evolveFrom": "MONSTER_GRAVELER", "evolveType": "EVOLVE_TYPE_LINK_CABLE" @@ -3782,7 +3782,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "dexInternal": [ 77, 77 @@ -3827,7 +3827,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "preEvolution": { "evolveFrom": "MONSTER_PONYTA", "evolveType": "EVOLVE_TYPE_LEVEL" @@ -3880,7 +3880,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "dexInternal": [ 79, 79 @@ -3926,7 +3926,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "preEvolution": { "evolveFrom": "MONSTER_SLOWPOKE", "evolveType": "EVOLVE_TYPE_LEVEL" @@ -3980,7 +3980,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "dexInternal": [ 81, 81 @@ -4026,7 +4026,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "preEvolution": { "evolveFrom": "MONSTER_MAGNEMITE", "evolveType": "EVOLVE_TYPE_LEVEL" @@ -4078,7 +4078,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "dexInternal": [ 83, 83 @@ -4123,7 +4123,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "dexInternal": [ 84, 84 @@ -4168,7 +4168,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "preEvolution": { "evolveFrom": "MONSTER_DODUO", "evolveType": "EVOLVE_TYPE_LEVEL" @@ -4219,7 +4219,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "dexInternal": [ 86, 86 @@ -4264,7 +4264,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "preEvolution": { "evolveFrom": "MONSTER_SEEL", "evolveType": "EVOLVE_TYPE_LEVEL" @@ -4315,7 +4315,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "dexInternal": [ 88, 88 @@ -4359,7 +4359,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "preEvolution": { "evolveFrom": "MONSTER_GRIMER", "evolveType": "EVOLVE_TYPE_LEVEL" @@ -4410,7 +4410,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "dexInternal": [ 90, 90 @@ -4455,7 +4455,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "preEvolution": { "evolveFrom": "MONSTER_SHELLDER", "evolveType": "EVOLVE_TYPE_ITEM" @@ -4507,7 +4507,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "dexInternal": [ 92, 92 @@ -4552,7 +4552,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "preEvolution": { "evolveFrom": "MONSTER_GASTLY", "evolveType": "EVOLVE_TYPE_LEVEL" @@ -4605,7 +4605,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "preEvolution": { "evolveFrom": "MONSTER_HAUNTER", "evolveType": "EVOLVE_TYPE_LINK_CABLE" @@ -4658,7 +4658,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "dexInternal": [ 95, 95 @@ -4701,7 +4701,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "dexInternal": [ 96, 96 @@ -4744,7 +4744,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "preEvolution": { "evolveFrom": "MONSTER_DROWZEE", "evolveType": "EVOLVE_TYPE_LEVEL" @@ -4796,7 +4796,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "dexInternal": [ 98, 98 @@ -4841,7 +4841,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "preEvolution": { "evolveFrom": "MONSTER_KRABBY", "evolveType": "EVOLVE_TYPE_LEVEL" @@ -4892,7 +4892,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "dexInternal": [ 100, 100 @@ -4936,7 +4936,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "preEvolution": { "evolveFrom": "MONSTER_VOLTORB", "evolveType": "EVOLVE_TYPE_LEVEL" @@ -4987,7 +4987,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "dexInternal": [ 102, 102 @@ -5031,7 +5031,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "preEvolution": { "evolveFrom": "MONSTER_EXEGGCUTE", "evolveType": "EVOLVE_TYPE_ITEM" @@ -5083,7 +5083,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "dexInternal": [ 104, 104 @@ -5127,7 +5127,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "preEvolution": { "evolveFrom": "MONSTER_CUBONE", "evolveType": "EVOLVE_TYPE_LEVEL" @@ -5177,7 +5177,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "preEvolution": { "evolveFrom": "MONSTER_TYROGUE", "evolveType": "EVOLVE_TYPE_LEVEL" @@ -5228,7 +5228,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "preEvolution": { "evolveFrom": "MONSTER_TYROGUE", "evolveType": "EVOLVE_TYPE_LEVEL" @@ -5280,7 +5280,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "dexInternal": [ 108, 108 @@ -5324,7 +5324,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "dexInternal": [ 109, 109 @@ -5368,7 +5368,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "preEvolution": { "evolveFrom": "MONSTER_KOFFING", "evolveType": "EVOLVE_TYPE_LEVEL" @@ -5420,7 +5420,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "dexInternal": [ 111, 111 @@ -5465,7 +5465,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "preEvolution": { "evolveFrom": "MONSTER_RHYHORN", "evolveType": "EVOLVE_TYPE_LEVEL" @@ -5516,7 +5516,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "dexInternal": [ 113, 113 @@ -5559,7 +5559,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "dexInternal": [ 114, 114 @@ -5603,7 +5603,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "dexInternal": [ 115, 115 @@ -5647,7 +5647,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "dexInternal": [ 116, 116 @@ -5691,7 +5691,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "preEvolution": { "evolveFrom": "MONSTER_HORSEA", "evolveType": "EVOLVE_TYPE_LEVEL" @@ -5743,7 +5743,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "dexInternal": [ 118, 118 @@ -5788,7 +5788,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "preEvolution": { "evolveFrom": "MONSTER_GOLDEEN", "evolveType": "EVOLVE_TYPE_LEVEL" @@ -5840,7 +5840,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "dexInternal": [ 120, 120 @@ -5886,7 +5886,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "preEvolution": { "evolveFrom": "MONSTER_STARYU", "evolveType": "EVOLVE_TYPE_ITEM" @@ -5936,7 +5936,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "dexInternal": [ 122, 122 @@ -5980,7 +5980,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "dexInternal": [ 123, 123 @@ -6024,7 +6024,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "preEvolution": { "evolveFrom": "MONSTER_SMOOCHUM", "evolveType": "EVOLVE_TYPE_LEVEL" @@ -6074,7 +6074,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "preEvolution": { "evolveFrom": "MONSTER_ELEKID", "evolveType": "EVOLVE_TYPE_LEVEL" @@ -6125,7 +6125,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "preEvolution": { "evolveFrom": "MONSTER_MAGBY", "evolveType": "EVOLVE_TYPE_LEVEL" @@ -6175,7 +6175,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "dexInternal": [ 127, 127 @@ -6218,7 +6218,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "dexInternal": [ 128, 128 @@ -6262,7 +6262,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "dexInternal": [ 129, 129 @@ -6307,7 +6307,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "preEvolution": { "evolveFrom": "MONSTER_MAGIKARP", "evolveType": "EVOLVE_TYPE_LEVEL" @@ -6360,7 +6360,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "dexInternal": [ 131, 131 @@ -6403,7 +6403,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "dexInternal": [ 132, 132 @@ -6447,7 +6447,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "dexInternal": [ 133, 133 @@ -6491,7 +6491,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "preEvolution": { "evolveFrom": "MONSTER_EEVEE", "evolveType": "EVOLVE_TYPE_ITEM" @@ -6541,7 +6541,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "preEvolution": { "evolveFrom": "MONSTER_EEVEE", "evolveType": "EVOLVE_TYPE_ITEM" @@ -6592,7 +6592,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "preEvolution": { "evolveFrom": "MONSTER_EEVEE", "evolveType": "EVOLVE_TYPE_ITEM" @@ -6643,7 +6643,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "dexInternal": [ 137, 137 @@ -6689,7 +6689,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "dexInternal": [ 138, 138 @@ -6735,7 +6735,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "preEvolution": { "evolveFrom": "MONSTER_OMANYTE", "evolveType": "EVOLVE_TYPE_LEVEL" @@ -6788,7 +6788,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "dexInternal": [ 140, 140 @@ -6834,7 +6834,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "preEvolution": { "evolveFrom": "MONSTER_KABUTO", "evolveType": "EVOLVE_TYPE_LEVEL" @@ -6887,7 +6887,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "dexInternal": [ 142, 142 @@ -6931,7 +6931,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "preEvolution": { "evolveFrom": "MONSTER_MUNCHLAX", "evolveType": "EVOLVE_TYPE_LEVEL" @@ -6985,7 +6985,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "dexInternal": [ 144, 144 @@ -7032,7 +7032,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "dexInternal": [ 145, 145 @@ -7079,7 +7079,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "dexInternal": [ 146, 146 @@ -7123,7 +7123,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "dexInternal": [ 147, 147 @@ -7167,7 +7167,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "preEvolution": { "evolveFrom": "MONSTER_DRATINI", "evolveType": "EVOLVE_TYPE_LEVEL" @@ -7219,7 +7219,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "preEvolution": { "evolveFrom": "MONSTER_DRAGONAIR", "evolveType": "EVOLVE_TYPE_LEVEL" @@ -7270,7 +7270,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "dexInternal": [ 150, 150 @@ -7314,7 +7314,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "dexInternal": [ 151, 151 @@ -7358,7 +7358,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "dexInternal": [ 152, 152 @@ -7401,7 +7401,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "preEvolution": { "evolveFrom": "MONSTER_CHIKORITA", "evolveType": "EVOLVE_TYPE_LEVEL" @@ -7451,7 +7451,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "preEvolution": { "evolveFrom": "MONSTER_BAYLEEF", "evolveType": "EVOLVE_TYPE_LEVEL" @@ -7503,7 +7503,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "dexInternal": [ 155, 155 @@ -7547,7 +7547,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "preEvolution": { "evolveFrom": "MONSTER_CYNDAQUIL", "evolveType": "EVOLVE_TYPE_LEVEL" @@ -7598,7 +7598,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "preEvolution": { "evolveFrom": "MONSTER_QUILAVA", "evolveType": "EVOLVE_TYPE_LEVEL" @@ -7650,7 +7650,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "dexInternal": [ 158, 158 @@ -7694,7 +7694,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "preEvolution": { "evolveFrom": "MONSTER_TOTODILE", "evolveType": "EVOLVE_TYPE_LEVEL" @@ -7745,7 +7745,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "preEvolution": { "evolveFrom": "MONSTER_CROCONAW", "evolveType": "EVOLVE_TYPE_LEVEL" @@ -7796,7 +7796,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "dexInternal": [ 161, 161 @@ -7840,7 +7840,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "preEvolution": { "evolveFrom": "MONSTER_SENTRET", "evolveType": "EVOLVE_TYPE_LEVEL" @@ -7892,7 +7892,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "dexInternal": [ 163, 163 @@ -7937,7 +7937,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "preEvolution": { "evolveFrom": "MONSTER_HOOTHOOT", "evolveType": "EVOLVE_TYPE_LEVEL" @@ -7990,7 +7990,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "dexInternal": [ 165, 165 @@ -8036,7 +8036,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "preEvolution": { "evolveFrom": "MONSTER_LEDYBA", "evolveType": "EVOLVE_TYPE_LEVEL" @@ -8088,7 +8088,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "dexInternal": [ 167, 167 @@ -8133,7 +8133,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "preEvolution": { "evolveFrom": "MONSTER_SPINARAK", "evolveType": "EVOLVE_TYPE_LEVEL" @@ -8185,7 +8185,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "preEvolution": { "evolveFrom": "MONSTER_GOLBAT", "evolveType": "EVOLVE_TYPE_IQ" @@ -8238,7 +8238,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "dexInternal": [ 170, 170 @@ -8284,7 +8284,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "preEvolution": { "evolveFrom": "MONSTER_CHINCHOU", "evolveType": "EVOLVE_TYPE_LEVEL" @@ -8334,7 +8334,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "dexInternal": [ 172, 172 @@ -8377,7 +8377,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "dexInternal": [ 173, 173 @@ -8420,7 +8420,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "dexInternal": [ 174, 174 @@ -8464,7 +8464,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "dexInternal": [ 175, 175 @@ -8509,7 +8509,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "preEvolution": { "evolveFrom": "MONSTER_TOGEPI", "evolveType": "EVOLVE_TYPE_IQ" @@ -8561,7 +8561,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "dexInternal": [ 177, 177 @@ -8607,7 +8607,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "preEvolution": { "evolveFrom": "MONSTER_NATU", "evolveType": "EVOLVE_TYPE_LEVEL" @@ -8657,7 +8657,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "dexInternal": [ 179, 179 @@ -8700,7 +8700,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "preEvolution": { "evolveFrom": "MONSTER_MAREEP", "evolveType": "EVOLVE_TYPE_LEVEL" @@ -8750,7 +8750,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "preEvolution": { "evolveFrom": "MONSTER_FLAAFFY", "evolveType": "EVOLVE_TYPE_LEVEL" @@ -8800,7 +8800,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "preEvolution": { "evolveFrom": "MONSTER_GLOOM", "evolveType": "EVOLVE_TYPE_ITEM" @@ -8852,7 +8852,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "preEvolution": { "evolveFrom": "MONSTER_AZURILL", "evolveType": "EVOLVE_TYPE_IQ" @@ -8904,7 +8904,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "preEvolution": { "evolveFrom": "MONSTER_MARILL", "evolveType": "EVOLVE_TYPE_LEVEL" @@ -8955,7 +8955,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "dexInternal": [ 185, 185 @@ -9000,7 +9000,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "preEvolution": { "evolveFrom": "MONSTER_POLIWHIRL", "evolveType": "EVOLVE_TYPE_ITEM" @@ -9052,7 +9052,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "dexInternal": [ 187, 187 @@ -9096,7 +9096,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "preEvolution": { "evolveFrom": "MONSTER_HOPPIP", "evolveType": "EVOLVE_TYPE_LEVEL" @@ -9148,7 +9148,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "preEvolution": { "evolveFrom": "MONSTER_SKIPLOOM", "evolveType": "EVOLVE_TYPE_LEVEL" @@ -9199,7 +9199,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "dexInternal": [ 190, 190 @@ -9242,7 +9242,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "dexInternal": [ 191, 191 @@ -9285,7 +9285,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "preEvolution": { "evolveFrom": "MONSTER_SUNKERN", "evolveType": "EVOLVE_TYPE_ITEM" @@ -9338,7 +9338,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "dexInternal": [ 193, 193 @@ -9384,7 +9384,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "dexInternal": [ 194, 194 @@ -9430,7 +9430,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "preEvolution": { "evolveFrom": "MONSTER_WOOPER", "evolveType": "EVOLVE_TYPE_LEVEL" @@ -9480,7 +9480,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "preEvolution": { "evolveFrom": "MONSTER_EEVEE", "evolveType": "EVOLVE_TYPE_IQ" @@ -9531,7 +9531,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "preEvolution": { "evolveFrom": "MONSTER_EEVEE", "evolveType": "EVOLVE_TYPE_IQ" @@ -9583,7 +9583,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "dexInternal": [ 198, 198 @@ -9629,7 +9629,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "preEvolution": { "evolveFrom": "MONSTER_SLOWPOKE", "evolveType": "EVOLVE_TYPE_ITEM" @@ -9681,7 +9681,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "dexInternal": [ 200, 200 @@ -9725,7 +9725,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "dexInternal": [ 201, 201 @@ -9769,7 +9769,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "dexInternal": [ 201, 202 @@ -9813,7 +9813,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "dexInternal": [ 201, 203 @@ -9857,7 +9857,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "dexInternal": [ 201, 204 @@ -9901,7 +9901,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "dexInternal": [ 201, 205 @@ -9945,7 +9945,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "dexInternal": [ 201, 206 @@ -9989,7 +9989,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "dexInternal": [ 201, 207 @@ -10033,7 +10033,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "dexInternal": [ 201, 208 @@ -10077,7 +10077,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "dexInternal": [ 201, 209 @@ -10121,7 +10121,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "dexInternal": [ 201, 210 @@ -10165,7 +10165,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "dexInternal": [ 201, 211 @@ -10209,7 +10209,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "dexInternal": [ 201, 212 @@ -10253,7 +10253,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "dexInternal": [ 201, 213 @@ -10297,7 +10297,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "dexInternal": [ 201, 214 @@ -10341,7 +10341,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "dexInternal": [ 201, 215 @@ -10385,7 +10385,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "dexInternal": [ 201, 216 @@ -10429,7 +10429,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "dexInternal": [ 201, 217 @@ -10473,7 +10473,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "dexInternal": [ 201, 218 @@ -10517,7 +10517,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "dexInternal": [ 201, 219 @@ -10561,7 +10561,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "dexInternal": [ 201, 220 @@ -10605,7 +10605,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "dexInternal": [ 201, 221 @@ -10649,7 +10649,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "dexInternal": [ 201, 222 @@ -10693,7 +10693,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "dexInternal": [ 201, 223 @@ -10737,7 +10737,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "dexInternal": [ 201, 224 @@ -10781,7 +10781,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "dexInternal": [ 201, 225 @@ -10825,7 +10825,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "dexInternal": [ 201, 226 @@ -10869,7 +10869,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "preEvolution": { "evolveFrom": "MONSTER_WYNAUT", "evolveType": "EVOLVE_TYPE_LEVEL" @@ -10921,7 +10921,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "dexInternal": [ 203, 230 @@ -10964,7 +10964,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "dexInternal": [ 204, 231 @@ -11008,7 +11008,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "preEvolution": { "evolveFrom": "MONSTER_PINECO", "evolveType": "EVOLVE_TYPE_LEVEL" @@ -11059,7 +11059,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "dexInternal": [ 206, 233 @@ -11105,7 +11105,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "dexInternal": [ 207, 234 @@ -11150,7 +11150,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "preEvolution": { "evolveFrom": "MONSTER_ONIX", "evolveType": "EVOLVE_TYPE_ITEM" @@ -11203,7 +11203,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "dexInternal": [ 209, 236 @@ -11247,7 +11247,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "preEvolution": { "evolveFrom": "MONSTER_SNUBBULL", "evolveType": "EVOLVE_TYPE_LEVEL" @@ -11300,7 +11300,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "dexInternal": [ 211, 238 @@ -11344,7 +11344,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "preEvolution": { "evolveFrom": "MONSTER_SCYTHER", "evolveType": "EVOLVE_TYPE_ITEM" @@ -11396,7 +11396,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "dexInternal": [ 213, 240 @@ -11441,7 +11441,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "dexInternal": [ 214, 241 @@ -11486,7 +11486,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "dexInternal": [ 215, 242 @@ -11529,7 +11529,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "dexInternal": [ 216, 243 @@ -11572,7 +11572,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "preEvolution": { "evolveFrom": "MONSTER_TEDDIURSA", "evolveType": "EVOLVE_TYPE_LEVEL" @@ -11624,7 +11624,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "dexInternal": [ 218, 245 @@ -11670,7 +11670,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "preEvolution": { "evolveFrom": "MONSTER_SLUGMA", "evolveType": "EVOLVE_TYPE_LEVEL" @@ -11721,7 +11721,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "dexInternal": [ 220, 247 @@ -11765,7 +11765,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "preEvolution": { "evolveFrom": "MONSTER_SWINUB", "evolveType": "EVOLVE_TYPE_LEVEL" @@ -11818,7 +11818,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "dexInternal": [ 222, 249 @@ -11862,7 +11862,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "dexInternal": [ 223, 250 @@ -11907,7 +11907,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "preEvolution": { "evolveFrom": "MONSTER_REMORAID", "evolveType": "EVOLVE_TYPE_LEVEL" @@ -11959,7 +11959,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "dexInternal": [ 225, 252 @@ -12005,7 +12005,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "dexInternal": [ 226, 253 @@ -12051,7 +12051,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "dexInternal": [ 227, 254 @@ -12097,7 +12097,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "dexInternal": [ 228, 255 @@ -12143,7 +12143,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "preEvolution": { "evolveFrom": "MONSTER_HOUNDOUR", "evolveType": "EVOLVE_TYPE_LEVEL" @@ -12195,7 +12195,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "preEvolution": { "evolveFrom": "MONSTER_SEADRA", "evolveType": "EVOLVE_TYPE_ITEM" @@ -12246,7 +12246,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "dexInternal": [ 231, 258 @@ -12289,7 +12289,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "preEvolution": { "evolveFrom": "MONSTER_PHANPY", "evolveType": "EVOLVE_TYPE_LEVEL" @@ -12340,7 +12340,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "preEvolution": { "evolveFrom": "MONSTER_PORYGON", "evolveType": "EVOLVE_TYPE_ITEM" @@ -12391,7 +12391,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "dexInternal": [ 234, 261 @@ -12435,7 +12435,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "dexInternal": [ 235, 262 @@ -12478,7 +12478,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "dexInternal": [ 236, 263 @@ -12521,7 +12521,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "preEvolution": { "evolveFrom": "MONSTER_TYROGUE", "evolveType": "EVOLVE_TYPE_LEVEL" @@ -12573,7 +12573,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "dexInternal": [ 238, 265 @@ -12616,7 +12616,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "dexInternal": [ 239, 266 @@ -12660,7 +12660,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "dexInternal": [ 240, 267 @@ -12703,7 +12703,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "dexInternal": [ 241, 268 @@ -12747,7 +12747,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "preEvolution": { "evolveFrom": "MONSTER_CHANSEY", "evolveType": "EVOLVE_TYPE_IQ" @@ -12798,7 +12798,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "dexInternal": [ 243, 270 @@ -12843,7 +12843,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "dexInternal": [ 244, 271 @@ -12888,7 +12888,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "dexInternal": [ 245, 272 @@ -12932,7 +12932,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "dexInternal": [ 246, 273 @@ -12976,7 +12976,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "preEvolution": { "evolveFrom": "MONSTER_LARVITAR", "evolveType": "EVOLVE_TYPE_LEVEL" @@ -13028,7 +13028,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "preEvolution": { "evolveFrom": "MONSTER_PUPITAR", "evolveType": "EVOLVE_TYPE_LEVEL" @@ -13082,7 +13082,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "dexInternal": [ 249, 276 @@ -13128,7 +13128,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "dexInternal": [ 250, 277 @@ -13174,7 +13174,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "dexInternal": [ 251, 278 @@ -13218,7 +13218,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "dexInternal": [ 252, 279 @@ -13261,7 +13261,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "preEvolution": { "evolveFrom": "MONSTER_TREECKO", "evolveType": "EVOLVE_TYPE_LEVEL" @@ -13311,7 +13311,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "preEvolution": { "evolveFrom": "MONSTER_GROVYLE", "evolveType": "EVOLVE_TYPE_LEVEL" @@ -13363,7 +13363,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "dexInternal": [ 255, 282 @@ -13408,7 +13408,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "preEvolution": { "evolveFrom": "MONSTER_TORCHIC", "evolveType": "EVOLVE_TYPE_LEVEL" @@ -13460,7 +13460,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "preEvolution": { "evolveFrom": "MONSTER_COMBUSKEN", "evolveType": "EVOLVE_TYPE_LEVEL" @@ -13512,7 +13512,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "dexInternal": [ 258, 285 @@ -13557,7 +13557,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "preEvolution": { "evolveFrom": "MONSTER_MUDKIP", "evolveType": "EVOLVE_TYPE_LEVEL" @@ -13609,7 +13609,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "preEvolution": { "evolveFrom": "MONSTER_MARSHTOMP", "evolveType": "EVOLVE_TYPE_LEVEL" @@ -13659,7 +13659,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "dexInternal": [ 261, 288 @@ -13702,7 +13702,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "preEvolution": { "evolveFrom": "MONSTER_POOCHYENA", "evolveType": "EVOLVE_TYPE_LEVEL" @@ -13752,7 +13752,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "dexInternal": [ 263, 290 @@ -13795,7 +13795,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "preEvolution": { "evolveFrom": "MONSTER_ZIGZAGOON", "evolveType": "EVOLVE_TYPE_LEVEL" @@ -13845,7 +13845,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "dexInternal": [ 265, 292 @@ -13888,7 +13888,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "preEvolution": { "evolveFrom": "MONSTER_WURMPLE", "evolveType": "EVOLVE_TYPE_LEVEL" @@ -13941,7 +13941,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "preEvolution": { "evolveFrom": "MONSTER_SILCOON", "evolveType": "EVOLVE_TYPE_LEVEL" @@ -13991,7 +13991,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "preEvolution": { "evolveFrom": "MONSTER_WURMPLE", "evolveType": "EVOLVE_TYPE_LEVEL" @@ -14044,7 +14044,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "preEvolution": { "evolveFrom": "MONSTER_CASCOON", "evolveType": "EVOLVE_TYPE_LEVEL" @@ -14097,7 +14097,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "dexInternal": [ 270, 297 @@ -14144,7 +14144,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "preEvolution": { "evolveFrom": "MONSTER_LOTAD", "evolveType": "EVOLVE_TYPE_LEVEL" @@ -14197,7 +14197,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "preEvolution": { "evolveFrom": "MONSTER_LOMBRE", "evolveType": "EVOLVE_TYPE_ITEM" @@ -14248,7 +14248,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "dexInternal": [ 273, 300 @@ -14293,7 +14293,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "preEvolution": { "evolveFrom": "MONSTER_SEEDOT", "evolveType": "EVOLVE_TYPE_LEVEL" @@ -14346,7 +14346,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "preEvolution": { "evolveFrom": "MONSTER_NUZLEAF", "evolveType": "EVOLVE_TYPE_ITEM" @@ -14397,7 +14397,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "dexInternal": [ 276, 303 @@ -14441,7 +14441,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "preEvolution": { "evolveFrom": "MONSTER_TAILLOW", "evolveType": "EVOLVE_TYPE_LEVEL" @@ -14493,7 +14493,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "dexInternal": [ 278, 305 @@ -14539,7 +14539,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "preEvolution": { "evolveFrom": "MONSTER_WINGULL", "evolveType": "EVOLVE_TYPE_LEVEL" @@ -14590,7 +14590,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "dexInternal": [ 280, 307 @@ -14634,7 +14634,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "preEvolution": { "evolveFrom": "MONSTER_RALTS", "evolveType": "EVOLVE_TYPE_LEVEL" @@ -14686,7 +14686,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "preEvolution": { "evolveFrom": "MONSTER_KIRLIA", "evolveType": "EVOLVE_TYPE_LEVEL" @@ -14738,7 +14738,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "dexInternal": [ 283, 310 @@ -14783,7 +14783,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "preEvolution": { "evolveFrom": "MONSTER_SURSKIT", "evolveType": "EVOLVE_TYPE_LEVEL" @@ -14833,7 +14833,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "dexInternal": [ 285, 312 @@ -14877,7 +14877,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "preEvolution": { "evolveFrom": "MONSTER_SHROOMISH", "evolveType": "EVOLVE_TYPE_LEVEL" @@ -14927,7 +14927,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "dexInternal": [ 287, 314 @@ -14970,7 +14970,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "preEvolution": { "evolveFrom": "MONSTER_SLAKOTH", "evolveType": "EVOLVE_TYPE_LEVEL" @@ -15020,7 +15020,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "preEvolution": { "evolveFrom": "MONSTER_VIGOROTH", "evolveType": "EVOLVE_TYPE_LEVEL" @@ -15071,7 +15071,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "dexInternal": [ 290, 317 @@ -15116,7 +15116,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "preEvolution": { "evolveFrom": "MONSTER_NINCADA", "evolveType": "EVOLVE_TYPE_LEVEL" @@ -15168,7 +15168,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "preEvolution": { "evolveFrom": "MONSTER_NINCADA", "evolveType": "EVOLVE_TYPE_NONE" @@ -15218,7 +15218,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "dexInternal": [ 293, 320 @@ -15261,7 +15261,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "preEvolution": { "evolveFrom": "MONSTER_WHISMUR", "evolveType": "EVOLVE_TYPE_LEVEL" @@ -15311,7 +15311,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "preEvolution": { "evolveFrom": "MONSTER_LOUDRED", "evolveType": "EVOLVE_TYPE_LEVEL" @@ -15363,7 +15363,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "dexInternal": [ 296, 323 @@ -15407,7 +15407,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "preEvolution": { "evolveFrom": "MONSTER_MAKUHITA", "evolveType": "EVOLVE_TYPE_LEVEL" @@ -15459,7 +15459,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "dexInternal": [ 298, 325 @@ -15503,7 +15503,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "dexInternal": [ 299, 326 @@ -15547,7 +15547,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "dexInternal": [ 300, 327 @@ -15590,7 +15590,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "preEvolution": { "evolveFrom": "MONSTER_SKITTY", "evolveType": "EVOLVE_TYPE_ITEM" @@ -15641,7 +15641,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "dexInternal": [ 302, 329 @@ -15685,7 +15685,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "dexInternal": [ 303, 330 @@ -15730,7 +15730,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "dexInternal": [ 304, 331 @@ -15775,7 +15775,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "preEvolution": { "evolveFrom": "MONSTER_ARON", "evolveType": "EVOLVE_TYPE_LEVEL" @@ -15827,7 +15827,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "preEvolution": { "evolveFrom": "MONSTER_LAIRON", "evolveType": "EVOLVE_TYPE_LEVEL" @@ -15879,7 +15879,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "dexInternal": [ 307, 334 @@ -15924,7 +15924,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "preEvolution": { "evolveFrom": "MONSTER_MEDITITE", "evolveType": "EVOLVE_TYPE_LEVEL" @@ -15975,7 +15975,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "dexInternal": [ 309, 336 @@ -16019,7 +16019,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "preEvolution": { "evolveFrom": "MONSTER_ELECTRIKE", "evolveType": "EVOLVE_TYPE_LEVEL" @@ -16069,7 +16069,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "dexInternal": [ 311, 338 @@ -16112,7 +16112,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "dexInternal": [ 312, 339 @@ -16156,7 +16156,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "dexInternal": [ 313, 340 @@ -16199,7 +16199,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "dexInternal": [ 314, 341 @@ -16244,7 +16244,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "dexInternal": [ 315, 342 @@ -16289,7 +16289,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "dexInternal": [ 316, 343 @@ -16333,7 +16333,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "preEvolution": { "evolveFrom": "MONSTER_GULPIN", "evolveType": "EVOLVE_TYPE_LEVEL" @@ -16385,7 +16385,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "dexInternal": [ 318, 345 @@ -16430,7 +16430,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "preEvolution": { "evolveFrom": "MONSTER_CARVANHA", "evolveType": "EVOLVE_TYPE_LEVEL" @@ -16482,7 +16482,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "dexInternal": [ 320, 347 @@ -16527,7 +16527,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "preEvolution": { "evolveFrom": "MONSTER_WAILMER", "evolveType": "EVOLVE_TYPE_LEVEL" @@ -16579,7 +16579,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "dexInternal": [ 322, 349 @@ -16624,7 +16624,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "preEvolution": { "evolveFrom": "MONSTER_NUMEL", "evolveType": "EVOLVE_TYPE_LEVEL" @@ -16675,7 +16675,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "dexInternal": [ 324, 351 @@ -16719,7 +16719,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "dexInternal": [ 325, 352 @@ -16763,7 +16763,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "preEvolution": { "evolveFrom": "MONSTER_SPOINK", "evolveType": "EVOLVE_TYPE_LEVEL" @@ -16814,7 +16814,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "dexInternal": [ 327, 354 @@ -16858,7 +16858,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "dexInternal": [ 328, 355 @@ -16903,7 +16903,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "preEvolution": { "evolveFrom": "MONSTER_TRAPINCH", "evolveType": "EVOLVE_TYPE_LEVEL" @@ -16955,7 +16955,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "preEvolution": { "evolveFrom": "MONSTER_VIBRAVA", "evolveType": "EVOLVE_TYPE_LEVEL" @@ -17005,7 +17005,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "dexInternal": [ 331, 358 @@ -17049,7 +17049,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "preEvolution": { "evolveFrom": "MONSTER_CACNEA", "evolveType": "EVOLVE_TYPE_LEVEL" @@ -17101,7 +17101,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "dexInternal": [ 333, 360 @@ -17145,7 +17145,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "preEvolution": { "evolveFrom": "MONSTER_SWABLU", "evolveType": "EVOLVE_TYPE_LEVEL" @@ -17195,7 +17195,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "dexInternal": [ 335, 362 @@ -17238,7 +17238,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "dexInternal": [ 336, 363 @@ -17283,7 +17283,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "dexInternal": [ 337, 364 @@ -17328,7 +17328,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "dexInternal": [ 338, 365 @@ -17373,7 +17373,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "dexInternal": [ 339, 366 @@ -17419,7 +17419,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "preEvolution": { "evolveFrom": "MONSTER_BARBOACH", "evolveType": "EVOLVE_TYPE_LEVEL" @@ -17471,7 +17471,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "dexInternal": [ 341, 368 @@ -17517,7 +17517,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "preEvolution": { "evolveFrom": "MONSTER_CORPHISH", "evolveType": "EVOLVE_TYPE_LEVEL" @@ -17569,7 +17569,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "dexInternal": [ 343, 370 @@ -17614,7 +17614,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "preEvolution": { "evolveFrom": "MONSTER_BALTOY", "evolveType": "EVOLVE_TYPE_LEVEL" @@ -17665,7 +17665,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "dexInternal": [ 345, 372 @@ -17709,7 +17709,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "preEvolution": { "evolveFrom": "MONSTER_LILEEP", "evolveType": "EVOLVE_TYPE_LEVEL" @@ -17760,7 +17760,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "dexInternal": [ 347, 374 @@ -17804,7 +17804,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "preEvolution": { "evolveFrom": "MONSTER_ANORITH", "evolveType": "EVOLVE_TYPE_LEVEL" @@ -17855,7 +17855,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "dexInternal": [ 349, 376 @@ -17899,7 +17899,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "preEvolution": { "evolveFrom": "MONSTER_FEEBAS", "evolveType": "EVOLVE_TYPE_LEVEL" @@ -17950,7 +17950,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "dexInternal": [ 351, 378 @@ -17993,7 +17993,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "dexInternal": [ 351, 379 @@ -18036,7 +18036,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "dexInternal": [ 351, 380 @@ -18079,7 +18079,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "dexInternal": [ 351, 381 @@ -18123,7 +18123,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "dexInternal": [ 352, 382 @@ -18167,7 +18167,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "dexInternal": [ 353, 383 @@ -18211,7 +18211,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "preEvolution": { "evolveFrom": "MONSTER_SHUPPET", "evolveType": "EVOLVE_TYPE_LEVEL" @@ -18262,7 +18262,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "dexInternal": [ 355, 385 @@ -18305,7 +18305,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "preEvolution": { "evolveFrom": "MONSTER_DUSKULL", "evolveType": "EVOLVE_TYPE_LEVEL" @@ -18356,7 +18356,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "dexInternal": [ 357, 387 @@ -18400,7 +18400,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "dexInternal": [ 358, 388 @@ -18445,7 +18445,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "dexInternal": [ 359, 389 @@ -18489,7 +18489,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "dexInternal": [ 360, 390 @@ -18532,7 +18532,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "dexInternal": [ 361, 391 @@ -18575,7 +18575,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "preEvolution": { "evolveFrom": "MONSTER_SNORUNT", "evolveType": "EVOLVE_TYPE_LEVEL" @@ -18627,7 +18627,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "dexInternal": [ 363, 393 @@ -18672,7 +18672,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "preEvolution": { "evolveFrom": "MONSTER_SPHEAL", "evolveType": "EVOLVE_TYPE_LEVEL" @@ -18724,7 +18724,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "preEvolution": { "evolveFrom": "MONSTER_SEALEO", "evolveType": "EVOLVE_TYPE_LEVEL" @@ -18775,7 +18775,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "dexInternal": [ 366, 396 @@ -18819,7 +18819,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "preEvolution": { "evolveFrom": "MONSTER_CLAMPERL", "evolveType": "EVOLVE_TYPE_ITEM" @@ -18871,7 +18871,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "preEvolution": { "evolveFrom": "MONSTER_CLAMPERL", "evolveType": "EVOLVE_TYPE_ITEM" @@ -18925,7 +18925,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "dexInternal": [ 369, 399 @@ -18969,7 +18969,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "dexInternal": [ 370, 400 @@ -19012,7 +19012,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "dexInternal": [ 371, 401 @@ -19055,7 +19055,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "preEvolution": { "evolveFrom": "MONSTER_BAGON", "evolveType": "EVOLVE_TYPE_LEVEL" @@ -19106,7 +19106,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "preEvolution": { "evolveFrom": "MONSTER_SHELGON", "evolveType": "EVOLVE_TYPE_LEVEL" @@ -19158,7 +19158,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "dexInternal": [ 374, 404 @@ -19203,7 +19203,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "preEvolution": { "evolveFrom": "MONSTER_BELDUM", "evolveType": "EVOLVE_TYPE_LEVEL" @@ -19254,7 +19254,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "preEvolution": { "evolveFrom": "MONSTER_METANG", "evolveType": "EVOLVE_TYPE_LEVEL" @@ -19304,7 +19304,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "dexInternal": [ 377, 407 @@ -19347,7 +19347,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "dexInternal": [ 378, 408 @@ -19390,7 +19390,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "dexInternal": [ 379, 409 @@ -19437,7 +19437,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "dexInternal": [ 380, 410 @@ -19484,7 +19484,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "dexInternal": [ 381, 411 @@ -19530,7 +19530,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "dexInternal": [ 382, 412 @@ -19576,7 +19576,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "dexInternal": [ 383, 413 @@ -19623,7 +19623,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "dexInternal": [ 384, 414 @@ -19669,7 +19669,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "dexInternal": [ 385, 415 @@ -19715,7 +19715,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "dexInternal": [ 386, 416 @@ -19759,7 +19759,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "dexInternal": [ 201, 227 @@ -19803,7 +19803,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "dexInternal": [ 201, 228 @@ -19848,7 +19848,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "dexInternal": [ 386, 416 @@ -19893,7 +19893,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "dexInternal": [ 386, 417 @@ -19938,7 +19938,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "dexInternal": [ 386, 418 @@ -19982,7 +19982,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "dexInternal": [ 387, 419 @@ -20025,7 +20025,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "dexInternal": [ 388, 420 @@ -20068,7 +20068,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": false, + "canThrowItems": false, "dexInternal": [ 389, 421 @@ -20114,7 +20114,7 @@ "unk30": 10, "unk31": 10, "unk32": 24, - "toolboxEnabled": true, + "canThrowItems": true, "dexInternal": [ 384, 422 diff --git a/include/charge_move.h b/include/charge_move.h index 32d632909..0fd75d5db 100644 --- a/include/charge_move.h +++ b/include/charge_move.h @@ -5,6 +5,6 @@ bool8 MoveMatchesChargingStatus(Entity *pokemon, Move *move); // checkCharge = Check for the move named Charge. -bool8 IsCharging(Entity *pokemon, bool8 checkCharge); +bool8 IsChargingAnyTwoTurnMove(Entity *pokemon, bool8 checkCharge); #endif diff --git a/include/constants/targeting.h b/include/constants/targeting.h index 614071651..956e30584 100644 --- a/include/constants/targeting.h +++ b/include/constants/targeting.h @@ -5,8 +5,8 @@ #define TARGETING_DECOY_TEAM 1 #define TARGETING_DECOY_WILD 2 -#define TARGET_CAPABILITY_CANNOT_ATTACK 0 -#define TARGET_CAPABILITY_CAN_TARGET 1 -#define TARGET_CAPABILITY_CAN_ATTACK_NOT_TARGET 2 +#define TREATMENT_TREAT_AS_ALLY 0 +#define TREATMENT_TREAT_AS_ENEMY 1 +#define TREATMENT_IGNORE 2 #endif diff --git a/include/dungeon_ai_item_weight.h b/include/dungeon_ai_item_weight.h index ff33d993f..81dc17685 100644 --- a/include/dungeon_ai_item_weight.h +++ b/include/dungeon_ai_item_weight.h @@ -3,7 +3,7 @@ #include "structs/dungeon_entity.h" -u32 EvaluateItem(Entity *targetPokemon, Item *item, u32 itemTargetFlags); -bool8 CanTargetAdjacentPokemon(Entity *pokemon); +u32 GetAIUseItemProbability(Entity *targetPokemon, Item *item, u32 itemTargetFlags); +bool8 IsAdjacentToEnemy(Entity *pokemon); #endif diff --git a/include/dungeon_ai_items.h b/include/dungeon_ai_items.h index bafbac478..05d909cef 100644 --- a/include/dungeon_ai_items.h +++ b/include/dungeon_ai_items.h @@ -4,9 +4,9 @@ #include "structs/dungeon_entity.h" #include "structs/str_position.h" -void DecideUseItem(Entity *pokemon); -void FindStraightThrowableTargets(Entity *pokemon, s32 thrownAIFlag, Item *item, bool8 ignoreRollChance); -void FindRockItemTargets(Entity *pokemon, Item *item, Position potentialTargets[], bool8 ignoreRollChance); +void AIDecideUseItem(Entity *pokemon); +void GetPossibleAIThrownItemDirections(Entity *pokemon, s32 thrownAIFlag, Item *item, bool8 ignoreRollChance); +void GetPossibleAIArcItemTargets(Entity *pokemon, Item *item, Position potentialTargets[], bool8 ignoreRollChance); void TargetThrownItem(Entity *pokemon, Entity *targetPokemon, Item *item, s32 targetingFlags, bool8 ignoreRollChance); #endif diff --git a/include/dungeon_ai_targeting.h b/include/dungeon_ai_targeting.h index 6cb73fe22..e63b4b4e7 100644 --- a/include/dungeon_ai_targeting.h +++ b/include/dungeon_ai_targeting.h @@ -10,7 +10,7 @@ bool8 ShouldAvoidFirstHit(Entity *pokemon, bool8 forceAvoid); bool8 ShouldMonsterRunAway(Entity *pokemon); bool8 ShouldMonsterRunAwayAndShowEffect(Entity *pokemon, bool8 showRunAwayEffect); void CheckRunAwayVisualFlag(Entity *pokemon, bool8 showRunAwayEffect); -u8 CanTarget(Entity *pokemon, Entity *targetPokemon, bool8 ignoreInvisible, bool8 checkPetrified); +u8 GetTreatmentBetweenMonsters(Entity *pokemon, Entity *targetPokemon, bool8 ignoreInvisible, bool8 checkPetrified); u8 sub_807167C(Entity * pokemon, Entity * target); #endif diff --git a/include/dungeon_capabilities.h b/include/dungeon_capabilities.h index 9d0948fa6..a8376dda5 100644 --- a/include/dungeon_capabilities.h +++ b/include/dungeon_capabilities.h @@ -3,10 +3,10 @@ #include "structs/dungeon_entity.h" -bool8 CannotMove(Entity *pokemon, bool8 checkBlinker); +bool8 CheckVariousStatuses2(Entity *pokemon, bool8 checkBlinker); bool8 sub_8070BC0(Entity* entity); -bool8 CannotUseItems(Entity *pokemon); -bool8 HasStatusThatPreventsActing(Entity *pokemon); +bool8 CheckVariousConditions(Entity *pokemon); +bool8 CheckVariousStatuses(Entity *pokemon); bool8 CannotAttack(Entity *pokemon, bool8 skipSleep); bool8 CanMoveInDirection(Entity *pokemon, u32 direction); diff --git a/include/dungeon_pokemon_attributes.h b/include/dungeon_pokemon_attributes.h index 93a97cc89..4a308dc38 100644 --- a/include/dungeon_pokemon_attributes.h +++ b/include/dungeon_pokemon_attributes.h @@ -14,7 +14,7 @@ void LoadIQSkills(Entity *pokemon); bool8 CanSeeTeammate(Entity * pokemon); u8 GetMoveTypeForMonster(Entity *pokemon, Move *pokeMove); s32 GetMovePower(Entity *pokemon, Move *pokeMove); -bool8 ToolboxEnabled(EntityInfo *pokemon); +bool8 MonsterCanThrowItems(EntityInfo *pokemon); bool8 SetVisualFlags(EntityInfo *entityInfo, u16 newFlag, bool8 param_3); #endif diff --git a/include/pokemon.h b/include/pokemon.h index d5956aea5..9318ae572 100644 --- a/include/pokemon.h +++ b/include/pokemon.h @@ -62,7 +62,7 @@ u32 GetWeight(s16 index); u32 GetSize(s16 index); u8 GetFriendArea(s32 index); u16 GetBaseHP(s16 index); -bool8 IsToolboxEnabled(s16 index); +bool8 MonsterIDCanThrowItems(s16 index); u8 GetUnk12(s16 index); s16 GetPokemonEvolveFrom(s16 index); u16 GetBaseOffensiveStat(s32 index, u32 r1); diff --git a/include/structs/str_pokemon.h b/include/structs/str_pokemon.h index f7f90fdad..26656cc59 100644 --- a/include/structs/str_pokemon.h +++ b/include/structs/str_pokemon.h @@ -143,7 +143,7 @@ typedef struct MonsterDataEntry u8 unk30; // 10 for all Pokémon. u8 unk31; // 10 for all Pokémon. u8 unk32; // 24 for all Pokémon. - /* 0x33 */ bool8 toolboxEnabled; // If false, the AI can't use items. Doesn't seem to be used, as it's true for all Pokémon. + /* 0x33 */ bool8 canThrowItems; // If false, the AI can't use items. Doesn't seem to be used, as it's true for all Pokémon. /* 0x34 */ PreEvolution preEvolution; /* 0x38 */ EvolutionRequirements evolutionRequirements; /* 0x3C */ s16 dexInternal[2]; // dexNo and internalNo diff --git a/src/charge_move.c b/src/charge_move.c index 9eb03e6b1..e77533f65 100644 --- a/src/charge_move.c +++ b/src/charge_move.c @@ -85,7 +85,7 @@ bool8 MoveMatchesChargingStatus(Entity *pokemon, Move *move) } } -bool8 IsCharging(Entity *pokemon, bool8 checkCharge) +bool8 IsChargingAnyTwoTurnMove(Entity *pokemon, bool8 checkCharge) { if (!EntityExists(pokemon)) { @@ -113,6 +113,7 @@ bool8 IsCharging(Entity *pokemon, bool8 checkCharge) return TRUE; } } + // BUG: This condition is never reached because the for loop terminates by returning FALSE at the end of the gMultiTurnChargingStatuses array. if (checkCharge && *chargingStatusPointer2 == chargeStatus) { return TRUE; diff --git a/src/code_8048480.c b/src/code_8048480.c index 100890827..1c3a3af68 100644 --- a/src/code_8048480.c +++ b/src/code_8048480.c @@ -218,7 +218,7 @@ void sub_80479B8(char param_1, char param_2, u8 param_3, Entity *pokemon, Entity flag = IQSkillIsEnabled(target, IQ_ITEM_CATCHER); } } - if (CannotUseItems(target)) { + if (CheckVariousConditions(target)) { flag = FALSE; } if (flag && ((info->heldItem.flags & ITEM_FLAG_EXISTS) == 0)) { @@ -867,7 +867,7 @@ bool8 sub_8048950(Entity *param_1,Item *item) if (EntityExists(entity)) { entityInfo = entity->info; flag = CanMonLearnMove(moveID, entityInfo->id); - if (CannotMove(entity, FALSE)) { + if (CheckVariousStatuses2(entity, FALSE)) { flag = FALSE; } if (entityInfo->clientType == CLIENT_TYPE_CLIENT) { @@ -942,7 +942,7 @@ bool8 sub_8048A68(Entity *param_1,Item *item) flag = FALSE; } - if (CannotMove(entity, FALSE)) { + if (CheckVariousStatuses2(entity, FALSE)) { flag = FALSE; } if (pEVar6->clientType == CLIENT_TYPE_CLIENT) { @@ -1016,7 +1016,7 @@ bool32 sub_8048B9C(Entity *entity,Item *param_2) if (EntityExists(entity1)) { entity1Info = entity1->info; flag = TRUE; - if(CannotMove(entity1, FALSE)) + if(CheckVariousStatuses2(entity1, FALSE)) { flag = FALSE; } diff --git a/src/code_805D8C8_1.c b/src/code_805D8C8_1.c index 469fe02e9..750e6ab20 100644 --- a/src/code_805D8C8_1.c +++ b/src/code_805D8C8_1.c @@ -2668,7 +2668,7 @@ bool8 sub_805EC4C(Entity *a0, u8 a1) if (tileMonsterInfo->sleep.sleep != STATUS_NONE && tileMonsterInfo->sleep.sleep != STATUS_SLEEPLESS && tileMonsterInfo->sleep.sleep != STATUS_YAWNING) return FALSE; if (entityInfo->sleep.sleep != STATUS_NONE && entityInfo->sleep.sleep != STATUS_SLEEPLESS && entityInfo->sleep.sleep != STATUS_YAWNING) return FALSE; - if (IsCharging(tileMonster, FALSE)) return FALSE; + if (IsChargingAnyTwoTurnMove(tileMonster, FALSE)) return FALSE; if (!sub_8070F80(a0, entityInfo->action.direction)) return FALSE; if (a1 != 0 && sub_807049C(tileMonster, &a0->pos) && !sub_8052B8C(0, gUnknown_8100208, 0)) return FALSE; @@ -4063,7 +4063,7 @@ void sub_8060900(Entity *a0) if (EntityExists(teamMon)) { EntityInfo *teamMonInfo = teamMon->info; teamMonInfo->unk157 = FALSE; - if (!CannotUseItems(teamMon)) { + if (!CheckVariousConditions(teamMon)) { r8 = TRUE; teamMonInfo->unk157 = TRUE; } @@ -4082,7 +4082,7 @@ void sub_8060900(Entity *a0) sub_8044F5C(0x37, item->id); } - if (CannotUseItems(a0)) { + if (CheckVariousConditions(a0)) { sub_8044FF0(0x37); sub_8044FF0(0x3E); } @@ -4108,7 +4108,7 @@ void sub_8060900(Entity *a0) sub_8044F5C(0xB, item->id); } - if (!ToolboxEnabled(a0Info)) { + if (!MonsterCanThrowItems(a0Info)) { sub_8044FF0(0x27); sub_8044FF0(0x41); sub_8044FF0(0xB); @@ -4122,7 +4122,7 @@ void sub_8060900(Entity *a0) EntityInfo *teamMonInfo = teamMon->info; r5 = FALSE; - if (CannotUseItems(teamMon)) + if (CheckVariousConditions(teamMon)) r6 = TRUE; else r6 = FALSE; @@ -4571,7 +4571,7 @@ void sub_806145C(struct UnkFieldTeamMenuStruct *a0) } } - if (CannotMove(teamMon, FALSE)) { + if (CheckVariousStatuses2(teamMon, FALSE)) { r5 = FALSE; } if (!r5) { @@ -4723,7 +4723,7 @@ void ShowTacticsMenu(ActionContainer *a0) gUnknown_202EE6C = 0; sub_8044F5C(0x2F, 0); sub_8044F5C(0xC, 0); - if (CannotMove(teamMon, TRUE)) { + if (CheckVariousStatuses2(teamMon, TRUE)) { sub_8044FF0(0x2F); } sub_805FC30(&sp, 0x16); diff --git a/src/code_8075708.c b/src/code_8075708.c index 8f909e065..654bba5af 100644 --- a/src/code_8075708.c +++ b/src/code_8075708.c @@ -40,7 +40,7 @@ void sub_8075680(void) if (targetPos->x == entity->pos.x && targetPos->y == entity->pos.y) continue; - if (CannotMove(entity, TRUE)) + if (CheckVariousStatuses2(entity, TRUE)) continue; direction = GetDirectionTowardsPosition(&entity->pos, targetPos); diff --git a/src/dungeon_ai.c b/src/dungeon_ai.c index a93e6e4c7..e8831c727 100644 --- a/src/dungeon_ai.c +++ b/src/dungeon_ai.c @@ -87,14 +87,14 @@ void RunMonsterAI(Entity *pokemon, u32 unused) { if (pokemonInfo->clientType != CLIENT_TYPE_CLIENT && pokemonInfo->useHeldItem) { - if (CannotUseItems(pokemon)) + if (CheckVariousConditions(pokemon)) { pokemonInfo->useHeldItem = FALSE; SetMessageArgument(gAvailablePokemonNames, pokemon, 0); SendMessage(pokemon, gPtrCouldntBeUsedMessage); return; } - DecideUseItem(pokemon); + AIDecideUseItem(pokemon); if (pokemonInfo->action.action != ACTION_NOTHING) { return; @@ -134,7 +134,7 @@ void RunMonsterAI(Entity *pokemon, u32 unused) } else { - DecideUseItem(pokemon); + AIDecideUseItem(pokemon); if (pokemonInfo->action.action == ACTION_NOTHING) { if (!IQSkillIsEnabled(pokemon, IQ_DEDICATED_TRAVELER)) diff --git a/src/dungeon_ai_attack.c b/src/dungeon_ai_attack.c index 6a795999b..441951a6f 100644 --- a/src/dungeon_ai_attack.c +++ b/src/dungeon_ai_attack.c @@ -653,7 +653,7 @@ bool8 IsAITargetEligible(s32 targetingFlags, Entity *user, Entity *target, Move u32 *categoryTargetingFlags2 = &categoryTargetingFlags; // Fixes a regswap. if (*categoryTargetingFlags2 == TARGETING_FLAG_TARGET_OTHER) { - if (CanTarget(user, target, FALSE, TRUE) == TARGET_CAPABILITY_CAN_TARGET) + if (GetTreatmentBetweenMonsters(user, target, FALSE, TRUE) == TREATMENT_TREAT_AS_ENEMY) { hasTarget = TRUE; } @@ -691,7 +691,7 @@ bool8 IsAITargetEligible(s32 targetingFlags, Entity *user, Entity *target, Move goto returnFalse; } checkCanTarget: - if (CanTarget(user, target, FALSE, TRUE) == TARGET_CAPABILITY_CANNOT_ATTACK) + if (GetTreatmentBetweenMonsters(user, target, FALSE, TRUE) == TREATMENT_TREAT_AS_ALLY) { hasTarget = TRUE; } @@ -827,7 +827,7 @@ bool8 TargetRegularAttack(Entity *pokemon, u32 *targetDir, bool8 checkPetrified) if (target != NULL && GetEntityType(target) == ENTITY_MONSTER && CanAttackInDirection(pokemon, direction) && - CanTarget(pokemon, target, FALSE, checkPetrified) == TARGET_CAPABILITY_CAN_TARGET && + GetTreatmentBetweenMonsters(pokemon, target, FALSE, checkPetrified) == TREATMENT_TREAT_AS_ENEMY && (!hasStatusChecker || target->info->immobilize.immobilizeStatus != STATUS_FROZEN)) { potentialAttackTargetDirections[numPotentialTargets] = direction; diff --git a/src/dungeon_ai_item_weight.c b/src/dungeon_ai_item_weight.c index 0fbd3769b..312d33bc4 100644 --- a/src/dungeon_ai_item_weight.c +++ b/src/dungeon_ai_item_weight.c @@ -11,7 +11,7 @@ #include "number_util.h" #include "status_checks_1.h" -u32 EvaluateItem(Entity *targetPokemon, Item *item, u32 itemTargetFlags) +u32 GetAIUseItemProbability(Entity *targetPokemon, Item *item, u32 itemTargetFlags) { EntityInfo *pokemonInfo = targetPokemon->info; s32 itemWeight = 0; @@ -62,7 +62,7 @@ u32 EvaluateItem(Entity *targetPokemon, Item *item, u32 itemTargetFlags) { if (!targetOther) { - if (CanTargetAdjacentPokemon(targetPokemon)) + if (IsAdjacentToEnemy(targetPokemon)) { itemWeight = 100; } @@ -153,7 +153,7 @@ u32 EvaluateItem(Entity *targetPokemon, Item *item, u32 itemTargetFlags) case ITEM_LIFE_SEED: if (!targetOther) { - if (CanTargetAdjacentPokemon(targetPokemon)) + if (IsAdjacentToEnemy(targetPokemon)) { itemWeight = 10; } @@ -170,7 +170,7 @@ u32 EvaluateItem(Entity *targetPokemon, Item *item, u32 itemTargetFlags) case ITEM_EYEDROP_SEED: if (!CanSeeInvisibleMonsters(targetPokemon)) { - if (CanTargetAdjacentPokemon(targetPokemon)) + if (IsAdjacentToEnemy(targetPokemon)) { itemWeight = 80; } @@ -187,7 +187,7 @@ u32 EvaluateItem(Entity *targetPokemon, Item *item, u32 itemTargetFlags) case ITEM_QUICK_SEED: if (targetPokemon->info->speedStage < MAX_SPEED_STAGE) { - if (CanTargetAdjacentPokemon(targetPokemon)) + if (IsAdjacentToEnemy(targetPokemon)) { itemWeight = 80; } @@ -204,7 +204,7 @@ u32 EvaluateItem(Entity *targetPokemon, Item *item, u32 itemTargetFlags) case ITEM_ALLURE_SEED: if (pokemonInfo->eyesightStatus.eyesightStatus != STATUS_CROSS_EYED) { - if (CanTargetAdjacentPokemon(targetPokemon)) + if (IsAdjacentToEnemy(targetPokemon)) { itemWeight = 80; } @@ -223,7 +223,7 @@ u32 EvaluateItem(Entity *targetPokemon, Item *item, u32 itemTargetFlags) { return 0; } - else if (CanTargetAdjacentPokemon(targetPokemon)) + else if (IsAdjacentToEnemy(targetPokemon)) { itemWeight = 80; } @@ -235,7 +235,7 @@ u32 EvaluateItem(Entity *targetPokemon, Item *item, u32 itemTargetFlags) case ITEM_TOTTER_SEED: if (pokemonInfo->volatileStatus.volatileStatus != STATUS_CONFUSED) { - if (CanTargetAdjacentPokemon(targetPokemon)) + if (IsAdjacentToEnemy(targetPokemon)) { itemWeight = 80; } @@ -255,7 +255,7 @@ u32 EvaluateItem(Entity *targetPokemon, Item *item, u32 itemTargetFlags) { return 0; } - else if (CanTargetAdjacentPokemon(targetPokemon)) + else if (IsAdjacentToEnemy(targetPokemon)) { itemWeight = 100; } @@ -267,7 +267,7 @@ u32 EvaluateItem(Entity *targetPokemon, Item *item, u32 itemTargetFlags) case ITEM_BLINKER_SEED: if (pokemonInfo->eyesightStatus.eyesightStatus != STATUS_BLINKER) { - if (CanTargetAdjacentPokemon(targetPokemon)) + if (IsAdjacentToEnemy(targetPokemon)) { itemWeight = 80; } @@ -284,7 +284,7 @@ u32 EvaluateItem(Entity *targetPokemon, Item *item, u32 itemTargetFlags) case ITEM_WARP_SEED: if (!targetAlly) { - if (CanTargetAdjacentPokemon(targetPokemon)) + if (IsAdjacentToEnemy(targetPokemon)) { itemWeight = 40; } @@ -297,7 +297,7 @@ u32 EvaluateItem(Entity *targetPokemon, Item *item, u32 itemTargetFlags) { if (!targetOther) { - if (CanTargetAdjacentPokemon(targetPokemon)) + if (IsAdjacentToEnemy(targetPokemon)) { itemWeight = 100; } @@ -320,7 +320,7 @@ u32 EvaluateItem(Entity *targetPokemon, Item *item, u32 itemTargetFlags) pokemonInfo->sleep.sleep != STATUS_NAPPING && pokemonInfo->sleep.sleep != STATUS_NIGHTMARE) { - if (CanTargetAdjacentPokemon(targetPokemon)) + if (IsAdjacentToEnemy(targetPokemon)) { itemWeight = 80; } @@ -392,7 +392,7 @@ u32 EvaluateItem(Entity *targetPokemon, Item *item, u32 itemTargetFlags) { return 0; } - else if (CanTargetAdjacentPokemon(targetPokemon)) + else if (IsAdjacentToEnemy(targetPokemon)) { itemWeight = 80; } @@ -402,7 +402,7 @@ u32 EvaluateItem(Entity *targetPokemon, Item *item, u32 itemTargetFlags) } break; case ITEM_BLAST_SEED: - if (CanTargetAdjacentPokemon(targetPokemon)) + if (IsAdjacentToEnemy(targetPokemon)) { itemWeight = 80; } @@ -443,7 +443,7 @@ u32 EvaluateItem(Entity *targetPokemon, Item *item, u32 itemTargetFlags) return itemWeight; } -bool8 CanTargetAdjacentPokemon(Entity *pokemon) +bool8 IsAdjacentToEnemy(Entity *pokemon) { s32 direction; for (direction = 0; direction < NUM_DIRECTIONS; direction++) @@ -451,7 +451,7 @@ bool8 CanTargetAdjacentPokemon(Entity *pokemon) struct Tile *mapTile = GetTile(pokemon->pos.x + gAdjacentTileOffsets[direction].x, pokemon->pos.y + gAdjacentTileOffsets[direction].y); Entity *adjacentPokemon = mapTile->monster; if (adjacentPokemon != NULL && GetEntityType(adjacentPokemon) != ENTITY_NOTHING && - CanTarget(pokemon, adjacentPokemon, FALSE, TRUE) == TARGET_CAPABILITY_CAN_TARGET) + GetTreatmentBetweenMonsters(pokemon, adjacentPokemon, FALSE, TRUE) == TREATMENT_TREAT_AS_ENEMY) { return TRUE; } diff --git a/src/dungeon_ai_items.c b/src/dungeon_ai_items.c index 34573ab45..c87ec3a24 100644 --- a/src/dungeon_ai_items.c +++ b/src/dungeon_ai_items.c @@ -34,11 +34,11 @@ enum ItemTargetFlag ITEM_TARGET_ALLY = 1 << 1 }; -EWRAM_DATA_2 s32 gNumPotentialTargets = {0}; +EWRAM_DATA_2 s32 gAIThrowItemActionChoiceCount = {0}; -EWRAM_DATA u32 gPotentialItemTargetDirections[NUM_DIRECTIONS] = {0}; -EWRAM_DATA bool8 gTargetAhead[NUM_DIRECTIONS] = {0}; -EWRAM_DATA u32 gPotentialItemTargetWeights[NUM_DIRECTIONS] = {0}; +EWRAM_DATA u32 gAIThrownItemDirections[NUM_DIRECTIONS] = {0}; +EWRAM_DATA bool8 gAIThrownItemDirectionIsUsed[NUM_DIRECTIONS] = {0}; +EWRAM_DATA u32 gAIThrownItemProbabilities[NUM_DIRECTIONS] = {0}; extern TeamInventory *gTeamInventoryRef; @@ -61,7 +61,7 @@ void sub_807360C(void) } } -void DecideUseItem(Entity *pokemon) +void AIDecideUseItem(Entity *pokemon) { EntityInfo *pokemonInfo = pokemon->info; void *null; @@ -69,7 +69,7 @@ void DecideUseItem(Entity *pokemon) s32 toolboxIndex; u8 selectedToolboxIndex; u32 *potentialTargetWeights; - if (CannotUseItems(pokemon)) + if (CheckVariousConditions(pokemon)) { pokemonInfo->useHeldItem = FALSE; return; @@ -90,20 +90,20 @@ void DecideUseItem(Entity *pokemon) if (itemType == CATEGORY_THROWN_LINE) { s32 targetIndex; - FindStraightThrowableTargets(pokemon, 2, item, 1); - for (targetIndex = 0; targetIndex < gNumPotentialTargets; targetIndex++) + GetPossibleAIThrownItemDirections(pokemon, ITEM_AI_FLAG_TARGET_ENEMY, item, TRUE); + for (targetIndex = 0; targetIndex < gAIThrowItemActionChoiceCount; targetIndex++) { - if (DungeonRandOutcome(gPotentialItemTargetWeights[targetIndex])) + if (DungeonRandOutcome(gAIThrownItemProbabilities[targetIndex])) { SetMonsterActionFields(&pokemonInfo->action, ACTION_THROW_ITEM_AI); pokemonInfo->action.unk4[0].actionUseIndex = selectedToolboxIndex; pokemonInfo->action.unk4[0].lastItemThrowPosition.x = pokemon->pos.x; pokemonInfo->action.unk4[0].lastItemThrowPosition.y = pokemon->pos.y; - pokemonInfo->action.direction = gPotentialItemTargetDirections[targetIndex] & DIRECTION_MASK; + pokemonInfo->action.direction = gAIThrownItemDirections[targetIndex] & DIRECTION_MASK; break; } } - if (targetIndex == gNumPotentialTargets) + if (targetIndex == gAIThrowItemActionChoiceCount) { SetMonsterActionFields(&pokemonInfo->action, ACTION_SECOND_THOUGHTS); } @@ -111,14 +111,14 @@ void DecideUseItem(Entity *pokemon) else if (itemType == CATEGORY_THROWN_ARC) { Position potentialTargetPositions[NUM_POTENTIAL_ROCK_TARGETS]; - FindRockItemTargets(pokemon, item, potentialTargetPositions, TRUE); - if (gNumPotentialTargets == 0) + GetPossibleAIArcItemTargets(pokemon, item, potentialTargetPositions, TRUE); + if (gAIThrowItemActionChoiceCount == 0) { SetMonsterActionFields(&pokemonInfo->action, ACTION_SECOND_THOUGHTS); } else { - u32 chosenTargetIndex = DungeonRandInt(gNumPotentialTargets); + u32 chosenTargetIndex = DungeonRandInt(gAIThrowItemActionChoiceCount); SetMonsterActionFields(&pokemonInfo->action, ACTION_THROW_ITEM_AI); pokemonInfo->action.unk4[0].actionUseIndex = selectedToolboxIndex; pokemonInfo->action.unk4[0].lastItemThrowPosition.x = pokemon->pos.x; @@ -191,7 +191,7 @@ void DecideUseItem(Entity *pokemon) { if (GetItemAIFlag(item->id, ITEM_AI_FLAG_TARGET_SELF)) { - u32 itemWeight = EvaluateItem(pokemon, item, ITEM_TARGET_ALLY); + u32 itemWeight = GetAIUseItemProbability(pokemon, item, ITEM_TARGET_ALLY); if (itemWeight != 0) { u8 itemType = GetItemCategory(item->id); @@ -222,22 +222,22 @@ void DecideUseItem(Entity *pokemon) { continue; } - if (ToolboxEnabled(pokemonInfo)) + if (MonsterCanThrowItems(pokemonInfo)) { s32 thrownAIFlag; for (thrownAIFlag = ITEM_AI_FLAG_TARGET_ALLY; thrownAIFlag <= ITEM_AI_FLAG_TARGET_ENEMY; thrownAIFlag++) { - potentialTargetWeights = gPotentialItemTargetWeights; + potentialTargetWeights = gAIThrownItemProbabilities; if (GetItemAIFlag(item->id, thrownAIFlag)) { u8 itemType = GetItemCategory(item->id); if (itemType == CATEGORY_THROWN_ARC) { Position potentialTargetPositions[NUM_POTENTIAL_ROCK_TARGETS]; - FindRockItemTargets(pokemon, item, potentialTargetPositions, FALSE); - if (gNumPotentialTargets != 0) + GetPossibleAIArcItemTargets(pokemon, item, potentialTargetPositions, FALSE); + if (gAIThrowItemActionChoiceCount != 0) { - u32 chosenTargetIndex = DungeonRandInt(gNumPotentialTargets); + u32 chosenTargetIndex = DungeonRandInt(gAIThrowItemActionChoiceCount); SetMonsterActionFields(&pokemonInfo->action, ACTION_THROW_ITEM_AI); pokemonInfo->action.unk4[0].actionUseIndex = selectedToolboxIndex; pokemonInfo->action.unk4[0].lastItemThrowPosition.x = pokemon->pos.x; @@ -250,8 +250,8 @@ void DecideUseItem(Entity *pokemon) else { s32 targetIndex; - FindStraightThrowableTargets(pokemon, thrownAIFlag, item, FALSE); - for (targetIndex = 0; targetIndex < gNumPotentialTargets; targetIndex++) + GetPossibleAIThrownItemDirections(pokemon, thrownAIFlag, item, FALSE); + for (targetIndex = 0; targetIndex < gAIThrowItemActionChoiceCount; targetIndex++) { if (DungeonRandOutcome(potentialTargetWeights[targetIndex])) { @@ -259,7 +259,7 @@ void DecideUseItem(Entity *pokemon) pokemonInfo->action.unk4[0].actionUseIndex = selectedToolboxIndex; pokemonInfo->action.unk4[0].lastItemThrowPosition.x = pokemon->pos.x; pokemonInfo->action.unk4[0].lastItemThrowPosition.y = pokemon->pos.y; - pokemonInfo->action.direction = gPotentialItemTargetDirections[targetIndex] & DIRECTION_MASK; + pokemonInfo->action.direction = gAIThrownItemDirections[targetIndex] & DIRECTION_MASK; return; } } @@ -271,13 +271,13 @@ void DecideUseItem(Entity *pokemon) } } -void FindStraightThrowableTargets(Entity *pokemon, s32 thrownAIFlag, Item *item, bool8 ignoreRollChance) +void GetPossibleAIThrownItemDirections(Entity *pokemon, s32 thrownAIFlag, Item *item, bool8 ignoreRollChance) { s32 i; - gNumPotentialTargets = 0; + gAIThrowItemActionChoiceCount = 0; for (i = 0; i < NUM_DIRECTIONS; i++) { - gTargetAhead[i] = FALSE; + gAIThrownItemDirectionIsUsed[i] = FALSE; } for (i = 0; i < DUNGEON_MAX_POKEMON; i++) { @@ -287,7 +287,7 @@ void FindStraightThrowableTargets(Entity *pokemon, s32 thrownAIFlag, Item *item, s32 targetingFlags; if (thrownAIFlag == ITEM_AI_FLAG_TARGET_ALLY) { - if (CanTarget(pokemon, targetPokemon, FALSE, FALSE) == TARGET_CAPABILITY_CANNOT_ATTACK) + if (GetTreatmentBetweenMonsters(pokemon, targetPokemon, FALSE, FALSE) == TREATMENT_TREAT_AS_ALLY) { targetingFlags = ITEM_TARGET_OTHER | ITEM_TARGET_ALLY; } @@ -296,7 +296,7 @@ void FindStraightThrowableTargets(Entity *pokemon, s32 thrownAIFlag, Item *item, continue; } } - else if (CanTarget(pokemon, targetPokemon, FALSE, TRUE) == TARGET_CAPABILITY_CAN_TARGET) + else if (GetTreatmentBetweenMonsters(pokemon, targetPokemon, FALSE, TRUE) == TREATMENT_TREAT_AS_ENEMY) { targetingFlags = ITEM_TARGET_OTHER; } @@ -312,15 +312,15 @@ void FindStraightThrowableTargets(Entity *pokemon, s32 thrownAIFlag, Item *item, } } -void FindRockItemTargets(Entity *pokemon, Item *item, Position potentialTargets[], bool8 ignoreRollChance) +void GetPossibleAIArcItemTargets(Entity *pokemon, Item *item, Position potentialTargets[], bool8 ignoreRollChance) { s32 i; - gNumPotentialTargets = 0; + gAIThrowItemActionChoiceCount = 0; for (i = 0; i < DUNGEON_MAX_POKEMON; i++) { Entity *targetPokemon = gDungeon->allPokemon[i]; if (EntityExists(targetPokemon) && pokemon != targetPokemon && - CanSeeTarget(pokemon, targetPokemon) && CanTarget(pokemon, targetPokemon, FALSE, TRUE) == TARGET_CAPABILITY_CAN_TARGET) + CanSeeTarget(pokemon, targetPokemon) && GetTreatmentBetweenMonsters(pokemon, targetPokemon, FALSE, TRUE) == TREATMENT_TREAT_AS_ENEMY) { s32 distanceX; s32 distance; @@ -343,16 +343,16 @@ void FindRockItemTargets(Entity *pokemon, Item *item, Position potentialTargets[ Position *newPotentialTarget; if (!ignoreRollChance) { - u32 itemWeight = EvaluateItem(targetPokemon, item, ITEM_TARGET_OTHER); + u32 itemWeight = GetAIUseItemProbability(targetPokemon, item, ITEM_TARGET_OTHER); if (!DungeonRandOutcome(itemWeight)) { continue; } } - newPotentialTarget = &potentialTargets[gNumPotentialTargets]; + newPotentialTarget = &potentialTargets[gAIThrowItemActionChoiceCount]; newPotentialTarget->x = targetPokemon->pos.x; newPotentialTarget->y = targetPokemon->pos.y; - gNumPotentialTargets++; + gAIThrowItemActionChoiceCount++; } } } @@ -414,15 +414,15 @@ void TargetThrownItem(Entity *pokemon, Entity *targetPokemon, Item *item, s32 ta } } - if (targetDirection > -1 && !gTargetAhead[targetDirection] && IsTargetInRange(pokemon, targetPokemon, targetDirection, RANGED_ATTACK_RANGE)) + if (targetDirection > -1 && !gAIThrownItemDirectionIsUsed[targetDirection] && IsTargetInRange(pokemon, targetPokemon, targetDirection, RANGED_ATTACK_RANGE)) { u32 itemWeight; u32 *targetWeight; - gTargetAhead[targetDirection] = TRUE; - gPotentialItemTargetDirections[gNumPotentialTargets] = targetDirection; - targetWeight = &gPotentialItemTargetWeights[gNumPotentialTargets]; - itemWeight = !ignoreRollChance ? EvaluateItem(targetPokemon, item, targetingFlags) : 100; + gAIThrownItemDirectionIsUsed[targetDirection] = TRUE; + gAIThrownItemDirections[gAIThrowItemActionChoiceCount] = targetDirection; + targetWeight = &gAIThrownItemProbabilities[gAIThrowItemActionChoiceCount]; + itemWeight = !ignoreRollChance ? GetAIUseItemProbability(targetPokemon, item, targetingFlags) : 100; *targetWeight = itemWeight; - gNumPotentialTargets++; + gAIThrowItemActionChoiceCount++; } } diff --git a/src/dungeon_ai_leader.c b/src/dungeon_ai_leader.c index 086629fb8..c212b0653 100644 --- a/src/dungeon_ai_leader.c +++ b/src/dungeon_ai_leader.c @@ -100,7 +100,7 @@ Entity* GetLeaderIfVisible(Entity *pokemon) Entity *leader = GetLeader(); if (leader && leader->info->waitingStruct.waitingStatus != STATUS_DECOY && - CanTarget(pokemon, leader, FALSE, FALSE) == TARGET_CAPABILITY_CANNOT_ATTACK && + GetTreatmentBetweenMonsters(pokemon, leader, FALSE, FALSE) == TREATMENT_TREAT_AS_ALLY && CanTargetEntity(pokemon, leader)) { return leader; @@ -134,7 +134,7 @@ bool8 sub_8072CF4(Entity *entity) sub_8075BA4(entity,gUnknown_80F58F4[(info->action).action][1]); } } - if ((CannotAttack(entity, FALSE)) && (IsCharging(entity, TRUE))) { + if ((CannotAttack(entity, FALSE)) && (IsChargingAnyTwoTurnMove(entity, TRUE))) { sub_8079764(entity); } @@ -280,7 +280,7 @@ bool8 sub_8072CF4(Entity *entity) case ACTION_THROW_ITEM_PLAYER: case ACTION_THROW_STRAIGHT_PLAYER: case ACTION_THROW_ARC_PLAYER: - if (ToolboxEnabled(info)) { + if (MonsterCanThrowItems(info)) { nullsub_95(entity); sub_80671A0(entity); break; diff --git a/src/dungeon_ai_movement.c b/src/dungeon_ai_movement.c index 837a5b716..cf6a77e9c 100644 --- a/src/dungeon_ai_movement.c +++ b/src/dungeon_ai_movement.c @@ -106,7 +106,7 @@ bool8 CanTakeItem(Entity *pokemon) EntityInfo *pokemonInfo = pokemon->info; struct Tile *mapTile; Entity *object; - if (!EntityExists(pokemon) || CannotUseItems(pokemon)) + if (!EntityExists(pokemon) || CheckVariousConditions(pokemon)) { return FALSE; } @@ -173,7 +173,7 @@ bool8 ChooseTargetPosition(Entity *pokemon) { if (gDungeon->decoyActive) { - if (CanTarget(pokemon, target, FALSE, TRUE) != TARGET_CAPABILITY_CAN_TARGET) + if (GetTreatmentBetweenMonsters(pokemon, target, FALSE, TRUE) != TREATMENT_TREAT_AS_ENEMY) { continue; } @@ -534,7 +534,7 @@ bool8 AvoidEnemies(Entity *pokemon) if (EntityExists(target) && CanSeeTarget(pokemon, target)) { s32 distance; - if (gDungeon->decoyActive && CanTarget(pokemon, target, FALSE, TRUE) != TARGET_CAPABILITY_CAN_TARGET) + if (gDungeon->decoyActive && GetTreatmentBetweenMonsters(pokemon, target, FALSE, TRUE) != TREATMENT_TREAT_AS_ENEMY) { continue; } diff --git a/src/dungeon_ai_targeting.c b/src/dungeon_ai_targeting.c index 625c211dc..c936013eb 100644 --- a/src/dungeon_ai_targeting.c +++ b/src/dungeon_ai_targeting.c @@ -29,35 +29,35 @@ const u8 gDirectionBitMasks_5[] = {0x1, 0x2, 0x4, 0x8, 0x10, 0x20, 0x40, 0x80}; const u8 gDirectionBitMasks_6[] = {0x1, 0x2, 0x4, 0x8, 0x10, 0x20, 0x40, 0x80}; const u8 gDirectionBitMasks_7[] = {0x1, 0x2, 0x4, 0x8, 0x10, 0x20, 0x40, 0x80}; -const u8 gTargetingData[3][2][2][2] = { +const u8 gTreatmentData[3][2][2][2] = { { { - {TARGET_CAPABILITY_CANNOT_ATTACK, TARGET_CAPABILITY_CAN_ATTACK_NOT_TARGET}, - {TARGET_CAPABILITY_CAN_TARGET, TARGET_CAPABILITY_CAN_ATTACK_NOT_TARGET} + {TREATMENT_TREAT_AS_ALLY, TREATMENT_IGNORE}, + {TREATMENT_TREAT_AS_ENEMY, TREATMENT_IGNORE} }, { - {TARGET_CAPABILITY_CAN_TARGET, TARGET_CAPABILITY_CAN_ATTACK_NOT_TARGET}, - {TARGET_CAPABILITY_CANNOT_ATTACK, TARGET_CAPABILITY_CAN_ATTACK_NOT_TARGET} + {TREATMENT_TREAT_AS_ENEMY, TREATMENT_IGNORE}, + {TREATMENT_TREAT_AS_ALLY, TREATMENT_IGNORE} } }, { { - {TARGET_CAPABILITY_CANNOT_ATTACK, TARGET_CAPABILITY_CAN_ATTACK_NOT_TARGET}, - {TARGET_CAPABILITY_CAN_TARGET, TARGET_CAPABILITY_CAN_ATTACK_NOT_TARGET} + {TREATMENT_TREAT_AS_ALLY, TREATMENT_IGNORE}, + {TREATMENT_TREAT_AS_ENEMY, TREATMENT_IGNORE} }, { - {TARGET_CAPABILITY_CAN_ATTACK_NOT_TARGET, TARGET_CAPABILITY_CAN_TARGET}, - {TARGET_CAPABILITY_CAN_ATTACK_NOT_TARGET, TARGET_CAPABILITY_CAN_TARGET} + {TREATMENT_IGNORE, TREATMENT_TREAT_AS_ENEMY}, + {TREATMENT_IGNORE, TREATMENT_TREAT_AS_ENEMY} } }, { { - {TARGET_CAPABILITY_CAN_ATTACK_NOT_TARGET, TARGET_CAPABILITY_CAN_TARGET}, - {TARGET_CAPABILITY_CAN_ATTACK_NOT_TARGET, TARGET_CAPABILITY_CAN_TARGET} + {TREATMENT_IGNORE, TREATMENT_TREAT_AS_ENEMY}, + {TREATMENT_IGNORE, TREATMENT_TREAT_AS_ENEMY} }, { - {TARGET_CAPABILITY_CAN_TARGET, TARGET_CAPABILITY_CAN_ATTACK_NOT_TARGET}, - {TARGET_CAPABILITY_CANNOT_ATTACK, TARGET_CAPABILITY_CAN_ATTACK_NOT_TARGET} + {TREATMENT_TREAT_AS_ENEMY, TREATMENT_IGNORE}, + {TREATMENT_TREAT_AS_ALLY, TREATMENT_IGNORE} } } }; @@ -66,7 +66,7 @@ bool8 sub_8070F3C(Entity * pokemon, Position *pos, s32 direction) { u8 terrain; struct Tile *tile; - + terrain = GetCrossableTerrain(pokemon->info->id); tile = GetTile(pos->x + gAdjacentTileOffsets[direction].x, pos->y + gAdjacentTileOffsets[direction].y); @@ -110,7 +110,7 @@ bool8 sub_8070F3C(Entity * pokemon, Position *pos, s32 direction) bool8 sub_8070F14(Entity * pokemon, s32 direction) { struct Tile *tile; - + tile = GetTile(pokemon->pos.x + gAdjacentTileOffsets[direction].x, pokemon->pos.y + gAdjacentTileOffsets[direction].y); if ((!(tile->terrainType & TERRAIN_TYPE_IMPASSABLE_WALL)) && @@ -129,7 +129,7 @@ bool8 sub_8070F80(Entity * pokemon, s32 direction) { u8 terrain; struct Tile *tile; - + terrain = GetCrossableTerrain(pokemon->info->id); tile = GetTile(pokemon->pos.x + gAdjacentTileOffsets[direction].x, pokemon->pos.y + gAdjacentTileOffsets[direction].y); @@ -174,7 +174,7 @@ bool8 sub_8071058(Entity * pokemon, s32 direction) { u8 terrain; struct Tile *tile; - + terrain = GetCrossableTerrain(pokemon->info->id); tile = GetTile(pokemon->pos.x + gAdjacentTileOffsets[direction].x, pokemon->pos.y + gAdjacentTileOffsets[direction].y); @@ -460,7 +460,7 @@ void CheckRunAwayVisualFlag(Entity *pokemon, bool8 showRunAwayEffect) } } -u8 CanTarget(Entity *pokemon, Entity *targetPokemon, bool8 ignoreInvisible, bool8 checkPetrified) +u8 GetTreatmentBetweenMonsters(Entity *pokemon, Entity *targetPokemon, bool8 ignoreInvisible, bool8 checkPetrified) { EntityInfo *pokemonInfo = pokemon->info; EntityInfo *targetData = targetPokemon->info; @@ -471,7 +471,7 @@ u8 CanTarget(Entity *pokemon, Entity *targetPokemon, bool8 ignoreInvisible, bool bool8 targetIsDecoy; if (pokemon == targetPokemon) { - return TARGET_CAPABILITY_CANNOT_ATTACK; + return TREATMENT_TREAT_AS_ALLY; } if (pokemonInfo->shopkeeper == SHOPKEEPER_MODE_SHOPKEEPER || targetData->shopkeeper == SHOPKEEPER_MODE_SHOPKEEPER || @@ -482,7 +482,7 @@ u8 CanTarget(Entity *pokemon, Entity *targetPokemon, bool8 ignoreInvisible, bool (checkPetrified && !pokemonInfo->isNotTeamMember && targetData->immobilize.immobilizeStatus == STATUS_PETRIFIED) || (!ignoreInvisible && targetData->transformStatus.transformStatus == STATUS_INVISIBLE && !CanSeeInvisibleMonsters(pokemon))) { - return TARGET_CAPABILITY_CAN_ATTACK_NOT_TARGET; + return TREATMENT_IGNORE; } pokemonTargetingDecoy = pokemonInfo->targetingDecoy; targetingDecoy = TARGETING_DECOY_NONE; @@ -523,7 +523,7 @@ u8 CanTarget(Entity *pokemon, Entity *targetPokemon, bool8 ignoreInvisible, bool { targetIsDecoy = TRUE; } - return gTargetingData[targetingDecoy][pokemonIsEnemy][targetIsEnemy][targetIsDecoy]; + return gTreatmentData[targetingDecoy][pokemonIsEnemy][targetIsEnemy][targetIsDecoy]; } static inline bool8 JoinLocationCannotUseItems_1(EntityInfo *pokemonInfo) @@ -553,15 +553,15 @@ u8 sub_807167C(Entity * pokemon, Entity * target) cannotUseItems = JoinLocationCannotUseItems_1(targetEntityInfo); if (cannotUseItems || (targetEntityInfo->shopkeeper != SHOPKEEPER_MODE_NORMAL)) { error: - return TARGET_CAPABILITY_CAN_ATTACK_NOT_TARGET; + return TREATMENT_IGNORE; } else { if ((pokemonEntityData->isNotTeamMember) != (targetEntityInfo->isNotTeamMember)) { - return TARGET_CAPABILITY_CAN_TARGET; + return TREATMENT_TREAT_AS_ENEMY; } else { - return TARGET_CAPABILITY_CANNOT_ATTACK; + return TREATMENT_TREAT_AS_ALLY; } } } diff --git a/src/dungeon_capabilities.c b/src/dungeon_capabilities.c index 35b81c449..5d3933e76 100644 --- a/src/dungeon_capabilities.c +++ b/src/dungeon_capabilities.c @@ -17,7 +17,10 @@ const u8 gDirectionBitMasks_1[] = {0x1, 0x2, 0x4, 0x8, 0x10, 0x20, 0x40, 0x80}; -bool8 CannotMove(Entity *pokemon, bool8 checkBlinker) +// TODO CheckVariousStatuses, CheckVariousStatuses2, CheckVariousConditions all check for different conditions that interfere with a Pokémon's ability to act, +// but I'm not sure what the reason is for each function checking the conditions that they do. +// These functions could use better names if someone figures out a clear pattern/reasoning. +bool8 CheckVariousStatuses2(Entity *pokemon, bool8 checkBlinker) { EntityInfo *pokemonInfo = pokemon->info; @@ -40,7 +43,7 @@ bool8 sub_8070BC0(Entity* entity) { EntityInfo *entityInfo = entity->info; - if (IsCharging(entity, FALSE) + if (IsChargingAnyTwoTurnMove(entity, FALSE) || entityInfo->sleep.sleep == STATUS_YAWNING || entityInfo->sleep.sleep == STATUS_NIGHTMARE || ShouldMonsterRunAway(entity) @@ -70,7 +73,7 @@ bool8 sub_8070BC0(Entity* entity) if (entityInfo->volatileStatus.volatileStatus != STATUS_INFATUATED && entityInfo->volatileStatus.volatileStatus != STATUS_PAUSED) return TRUE; - + return FALSE; } @@ -83,24 +86,24 @@ static inline bool8 JoinLocationCannotUseItems(EntityInfo *pokemonInfo) return FALSE; } -bool8 CannotUseItems(Entity *pokemon) +bool8 CheckVariousConditions(Entity *pokemon) { EntityInfo *pokemonInfo = pokemon->info; if (pokemonInfo->clientType == CLIENT_TYPE_CLIENT || JoinLocationCannotUseItems(pokemonInfo) || (!pokemonInfo->isTeamLeader && ShouldMonsterRunAway(pokemon)) - || CannotMove(pokemon, FALSE) - || HasStatusThatPreventsActing(pokemon)) + || CheckVariousStatuses2(pokemon, FALSE) + || CheckVariousStatuses(pokemon)) return TRUE; - if (IsCharging(pokemon, FALSE)) + if (IsChargingAnyTwoTurnMove(pokemon, FALSE)) return TRUE; return FALSE; } -bool8 HasStatusThatPreventsActing(Entity *pokemon) +bool8 CheckVariousStatuses(Entity *pokemon) { EntityInfo *pokemonInfo = pokemon->info; diff --git a/src/dungeon_items.c b/src/dungeon_items.c index 71215abd2..2b2d57aec 100644 --- a/src/dungeon_items.c +++ b/src/dungeon_items.c @@ -370,7 +370,7 @@ bool8 sub_8046F00(Item *item) entity = gDungeon->teamPokemon[index]; if (EntityExists(entity)) { canLearnMove = CanMonLearnMove(moveID, entity->info->id); - cannotMove = CannotMove(entity, FALSE); + cannotMove = CheckVariousStatuses2(entity, FALSE); if (cannotMove) { canLearnMove = FALSE; } diff --git a/src/dungeon_pokemon_attributes.c b/src/dungeon_pokemon_attributes.c index 4d1f46910..62cae8eb9 100644 --- a/src/dungeon_pokemon_attributes.c +++ b/src/dungeon_pokemon_attributes.c @@ -231,9 +231,9 @@ s32 GetMovePower(Entity *pokemon, Move *pokeMove) return (GetMoveBasePower(pokeMove) + pokeMove->ginseng); } -bool8 ToolboxEnabled(EntityInfo *pokemon) +bool8 MonsterCanThrowItems(EntityInfo *pokemon) { - if(!IsToolboxEnabled(pokemon->id)) + if(!MonsterIDCanThrowItems(pokemon->id)) return FALSE; return TRUE; } diff --git a/src/move_actions.c b/src/move_actions.c index a465b96e5..bf241eced 100644 --- a/src/move_actions.c +++ b/src/move_actions.c @@ -3230,7 +3230,7 @@ bool8 sub_805AD54(Entity * pokemon, Entity * target, Move *move, u32 param_4) for ( index = 0; index < numPossibleTargets; index++) { targetEntity = possibleTargets[index]; if ((((EntityExists(targetEntity)) && (pokemon != targetEntity)) && - (CanTarget(pokemon,targetEntity,FALSE,FALSE) == TARGET_CAPABILITY_CANNOT_ATTACK)) && + (GetTreatmentBetweenMonsters(pokemon,targetEntity,FALSE,FALSE) == TREATMENT_TREAT_AS_ALLY)) && (targetEntity->info->clientType != CLIENT_TYPE_CLIENT)) { if (!sub_805AD54_sub(targetEntity)) { sub_807D148(pokemon,targetEntity,2,&target->pos); diff --git a/src/move_effects_target.c b/src/move_effects_target.c index 6e220eaad..bc0afd0f0 100644 --- a/src/move_effects_target.c +++ b/src/move_effects_target.c @@ -544,7 +544,7 @@ void BurnedStatusTarget(Entity * pokemon, Entity * target, u8 param_3, bool8 dis SetMessageArgument_2(gAvailablePokemonNames,entityInfo,0); sub_80522F4(pokemon,target,*gUnknown_80FF01C); } - if (sub_807167C(target,entity) == TARGET_CAPABILITY_CAN_TARGET) { + if (sub_807167C(target,entity) == TREATMENT_TREAT_AS_ENEMY) { // Recurse with the new target BurnedStatusTarget(pokemon,entity,1,displayMessage); } @@ -631,7 +631,7 @@ void PoisonedStatusTarget(Entity * pokemon, Entity * target, bool8 displayMessag SetMessageArgument_2(gAvailablePokemonNames,entityInfo,0); sub_80522F4(pokemon,target,*gUnknown_80FF01C); } - if (sub_807167C(target,entity) == TARGET_CAPABILITY_CAN_TARGET) { + if (sub_807167C(target,entity) == TREATMENT_TREAT_AS_ENEMY) { // Recurse with the new target PoisonedStatusTarget(pokemon,entity,displayMessage); } @@ -713,7 +713,7 @@ void BadlyPoisonedStatusTarget(Entity * pokemon, Entity * target, bool8 displayM SetMessageArgument_2(gAvailablePokemonNames,entityInfo,0); sub_80522F4(pokemon,target,*gUnknown_80FF01C); } - if (sub_807167C(target,entity) == TARGET_CAPABILITY_CAN_TARGET) { + if (sub_807167C(target,entity) == TREATMENT_TREAT_AS_ENEMY) { // Recurse with the new target BadlyPoisonedStatusTarget(pokemon,entity,displayMessage); } diff --git a/src/pokemon_mid.c b/src/pokemon_mid.c index 1115aad78..845f15462 100644 --- a/src/pokemon_mid.c +++ b/src/pokemon_mid.c @@ -483,9 +483,9 @@ u16 GetBaseHP(s16 index) return gMonsterParameters[index].baseHP; } -bool8 IsToolboxEnabled(s16 index) +bool8 MonsterIDCanThrowItems(s16 index) { - return gMonsterParameters[index].toolboxEnabled; + return gMonsterParameters[index].canThrowItems; } u8 GetUnk12(s16 index) diff --git a/src/status_actions.c b/src/status_actions.c index 429889ed4..02a7cb300 100644 --- a/src/status_actions.c +++ b/src/status_actions.c @@ -10,6 +10,7 @@ #include "constants/ability.h" #include "constants/move_id.h" #include "constants/status.h" +#include "constants/targeting.h" #include "constants/type.h" #include "constants/weather.h" #include "dungeon_ai_targeting.h" @@ -1083,7 +1084,7 @@ bool8 sub_805C080(Entity * pokemon, Entity *target, Move *move, s32 param_4) for(index = 0; index < numPossibleTargets; index++){ targetEntity = possibleTargets[index]; if (((EntityExists(targetEntity)) && (pokemon != targetEntity)) && - (CanTarget(pokemon,targetEntity,1,FALSE) == 0)) { + (GetTreatmentBetweenMonsters(pokemon,targetEntity,TRUE,FALSE) == TREATMENT_TREAT_AS_ALLY)) { sub_807D148(pokemon,targetEntity,2,&pokemon->pos); foundTarget = TRUE; } diff --git a/tools/dungeonjson/dungeonjson.cpp b/tools/dungeonjson/dungeonjson.cpp index ddf4dbf65..0461430cb 100644 --- a/tools/dungeonjson/dungeonjson.cpp +++ b/tools/dungeonjson/dungeonjson.cpp @@ -634,7 +634,7 @@ string generate_monster_data_text(Json data) { << read_json_int(data_entry["unk30"], 1) << read_json_int(data_entry["unk31"], 1) << read_json_int(data_entry["unk32"], 1) - << read_json_bool(data_entry["toolboxEnabled"]) + << read_json_bool(data_entry["canThrowItems"]) << read_json_string(data_entry["preEvolution"]["evolveFrom"], 2) << read_json_string(data_entry["preEvolution"]["evolveType"], 2);