AI and player items, withdraw/deposit

This commit is contained in:
PikalaxALT 2015-11-08 10:59:28 -05:00
parent 6a570ebb8e
commit c34264ddd8
9 changed files with 433 additions and 385 deletions

View File

@ -314,7 +314,7 @@ AI_Items: ; 39196
bit ALWAYS_USE_F, a
jp nz, .Use
call Random
cp 50
cp -1 + 20 percent
jp c, .Use
jp .DontUse
@ -326,7 +326,7 @@ AI_Items: ; 39196
cp 4
jr c, .FailToxicCheck
call Random
cp $80
cp 1 + 50 percent
jp c, .Use
.FailToxicCheck
ld a, [EnemyMonStatus]
@ -367,7 +367,7 @@ AI_Items: ; 39196
callab AICheckEnemyQuarterHP
jp nc, .UseHealItem
call Random
cp $80
cp 1 + 50 percent
jp c, .UseHealItem
jp .DontUse
@ -375,7 +375,7 @@ AI_Items: ; 39196
callab AICheckEnemyQuarterHP
jp c, .DontUse
call Random
cp $32
cp -1 + 20 percent
jp c, .DontUse
jr .UseHealItem
@ -385,7 +385,7 @@ AI_Items: ; 39196
callab AICheckEnemyQuarterHP
jp nc, .UseHealItem
call Random
cp $32
cp -1 + 20 percent
jp nc, .DontUse
.UseHealItem: ; 38281 (e:4281)
@ -418,44 +418,44 @@ AI_Items: ; 39196
.asm_382ae: ; This appears to be unused
callab AICheckEnemyMaxHP
jr c, .asm_382e4
jr c, .dont_use
push bc
ld de, EnemyMonMaxHP + 1
ld hl, EnemyMonHP + 1
ld a, [de]
sub [hl]
jr z, .asm_382e7
jr z, .check_40_percent
dec hl
dec de
ld c, a
sbc [hl]
and a
jr nz, .asm_382e7
jr nz, .check_40_percent
ld a, c
cp b
jp c, .asm_382d5
jp c, .check_50_percent
callab AICheckEnemyQuarterHP
jr c, .asm_382e7
jr c, .check_40_percent
.asm_382d5
.check_50_percent
pop bc
ld a, [bc]
bit UNKNOWN_USE_F, a
jp z, .Use
call Random
cp $80
cp 1 + 50 percent
jp c, .Use
.asm_382e4
.dont_use
jp .DontUse
.asm_382e7
.check_40_percent
pop bc
ld a, [bc]
bit UNKNOWN_USE_F, a
jp z, .DontUse
call Random
cp $64
cp 1 + 39 percent
jp c, .Use
jp .DontUse
; 382f9
@ -517,13 +517,13 @@ AI_Items: ; 39196
bit ALWAYS_USE_F, a
jp nz, .Use
call Random
cp $80
cp 1 + 50 percent
jp c, .DontUse
ld a, [bc]
bit CONTEXT_USE_F, a
jp nz, .Use
call Random
cp $80
cp 1 + 50 percent
jp c, .DontUse
jp .Use
.notfirstturnout
@ -531,7 +531,7 @@ AI_Items: ; 39196
bit ALWAYS_USE_F, a
jp z, .DontUse
call Random
cp $32
cp -1 + 20 percent
jp nc, .DontUse
jp .Use

View File

@ -5109,7 +5109,7 @@ DrawEnemyHUD: ; 3e043
ld [wd10a], a
hlcoord 2, 2
ld b, 0
call DrawHPBar
call DrawBattleHPBar
ret
; 3e127
@ -5954,7 +5954,7 @@ MoveInfoBox: ; 3e6c8
ld [CurPartyMon], a
ld a, WILDMON
ld [MonType], a
callab Functionf8ec
callab GetMaxPPOfMove
ld hl, MenuSelection2
ld c, [hl]

View File

@ -412,3 +412,28 @@ ITEMMENU_CLOSE EQU 6
const MART_MT_MOON
const MART_INDIGO_PLATEAU
const MART_UNDERGROUND
; PartyMenuActionText
const_def
const PARTYMENUACTION_00
const PARTYMENUACTION_HEALING_ITEM
const PARTYMENUACTION_02
const PARTYMENUACTION_TEACH_TM
const PARTYMENUACTION_04
const PARTYMENUACTION_EVO_STONE
const PARTYMENUACTION_06
const PARTYMENUACTION_07
const PARTYMENUACTION_08
const PARTYMENUACTION_MOBILE
const_value set $f0
const PARTYMENUTEXT_HEAL_PSN
const PARTYMENUTEXT_HEAL_BRN
const PARTYMENUTEXT_HEAL_FRZ
const PARTYMENUTEXT_HEAL_SLP
const PARTYMENUTEXT_HEAL_PAR
const PARTYMENUTEXT_HEAL_HP
const PARTYMENUTEXT_HEAL_ALL
const PARTYMENUTEXT_REVIVE
const PARTYMENUTEXT_LEVEL_UP
const PARTYMENUTEXT_HEAL_CONFUSION

View File

@ -75,3 +75,9 @@ NUM_OBJECT_STRUCTS EQU 13
; After-Champion Spawn
SPAWN_LANCE EQU 1
SPAWN_RED EQU 2
; wPokemonWithdrawDepositParameter
PC_WITHDRAW EQU 0
PC_DEPOSIT EQU 1
DAYCARE_WITHDRAW EQU 2
DAYCARE_DEPOSIT EQU 3

View File

@ -34,7 +34,7 @@ PredefPointers:: ; 856b
add_predef Predef1
add_predef HealParty
add_predef FlagPredef
add_predef Functionc699
add_predef DrawPartyMenuHPBar
add_predef FillPP
add_predef TryAddMonToParty
add_predef Functionda96

View File

@ -1648,7 +1648,7 @@ IsAPokemon:: ; 3741
; 3750
DrawHPBar:: ; 3750
DrawBattleHPBar:: ; 3750
; Draw an HP bar d tiles long at hl
; Fill it up to e pixels

View File

@ -1193,8 +1193,8 @@ Thunderstone:
WaterStone:
LeafStone:
SunStone: ; ee0f
ld b, $5
call Functionf1f9
ld b, PARTYMENUACTION_EVO_STONE
call UseItem_SelectMon
jp c, .asm_ee38
@ -1230,8 +1230,8 @@ Protein:
Iron:
Carbos:
Calcium: ; ee3d
ld b, $1
call Functionf1f9
ld b, PARTYMENUACTION_HEALING_ITEM
call UseItem_SelectMon
jp c, Functionee9f
@ -1363,8 +1363,8 @@ Functioneef5: ; eef5
RareCandy: ; ef14
ld b, $1
call Functionf1f9
ld b, PARTYMENUACTION_HEALING_ITEM
call UseItem_SelectMon
jp c, Functionee9f
@ -1422,7 +1422,7 @@ RareCandy: ; ef14
ld [hl], a
callba LevelUpHappinessMod
ld a, $f8
ld a, PARTYMENUTEXT_LEVEL_UP
call Functionf24a
xor a ; PARTYMON
@ -1455,8 +1455,8 @@ RareCandy: ; ef14
HealPowder: ; efad
ld b, $1
call Functionf1f9
ld b, PARTYMENUACTION_HEALING_ITEM
call UseItem_SelectMon
jp c, Functionf29e
@ -1488,8 +1488,8 @@ BurntBerry:
IceBerry:
MintBerry:
Miracleberry: ; efcc
ld b, $1
call Functionf1f9
ld b, PARTYMENUACTION_HEALING_ITEM
call UseItem_SelectMon
jp c, Functionf29e
Functionefd4: ; efd4
@ -1502,22 +1502,22 @@ Functionefda: ; efda (3:6fda)
call Functionf30d
ld a, $1
ret z
call Functionf058
call GetItemHealingAction
ld a, MON_STATUS
call GetPartyParamLocation
ld a, [hl]
and c
jr nz, .asm_eff4
jr nz, .good
call Functionf009
ld a, $1
ret nc
ld b, $f9
.asm_eff4
ld b, PARTYMENUTEXT_HEAL_CONFUSION
.good
xor a
ld [hl], a
ld a, b
ld [PartyMenuActionText], a
call Functionf030
call HealStatus
call Play_SFX_FULL_HEAL
call Functionf279
call UseDisposableItem
@ -1526,16 +1526,16 @@ Functionefda: ; efda (3:6fda)
Functionf009: ; f009 (3:7009)
call Functionf2a6
jr nc, .asm_f01c
jr nc, .nope
ld a, [PlayerSubStatus3]
bit 7, a
jr z, .asm_f01c
bit SUBSTATUS_CONFUSED, a
jr z, .nope
ld a, c
cp $ff
jr nz, .asm_f01c
jr nz, .nope
scf
ret
.asm_f01c
.nope
and a
ret
@ -1550,39 +1550,39 @@ Functionf01e: ; f01e (3:701e)
ld [BattleMonHP + 1], a
ret
Functionf030: ; f030 (3:7030)
HealStatus: ; f030 (3:7030)
call Functionf2a6
ret nc
xor a
ld [BattleMonStatus], a
ld hl, PlayerSubStatus5
res 0, [hl]
res SUBSTATUS_TOXIC, [hl]
ld hl, PlayerSubStatus1
res 0, [hl]
call Functionf058
res SUBSTATUS_NIGHTMARE, [hl]
call GetItemHealingAction
ld a, c
cp $ff
jr nz, .asm_f04f
cp %11111111
jr nz, .not_full_heal
ld hl, PlayerSubStatus3
res 7, [hl]
.asm_f04f
res SUBSTATUS_CONFUSED, [hl]
.not_full_heal
push bc
callba CalcPlayerStats
pop bc
ret
Functionf058: ; f058 (3:7058)
GetItemHealingAction: ; f058 (3:7058)
push hl
ld a, [CurItem]
ld hl, Table_f071
ld hl, .healingactions
ld bc, 3
.next
cp [hl]
jr z, .asm_f068
jr z, .found_it
add hl, bc
jr .next
.asm_f068
.found_it
inc hl
ld b, [hl]
inc hl
@ -1593,39 +1593,39 @@ Functionf058: ; f058 (3:7058)
ret
; f071 (3:7071)
Table_f071: ; f071
.healingactions: ; f071
; item, party menu action text, status
db ANTIDOTE, $f0, 1 << PSN
db BURN_HEAL, $f1, 1 << BRN
db ICE_HEAL, $f2, 1 << FRZ
db AWAKENING, $f3, SLP
db PARLYZ_HEAL, $f4, 1 << PAR
db FULL_HEAL, $f6, %11111111
db FULL_RESTORE, $f6, %11111111
db HEAL_POWDER, $f6, %11111111
db PSNCUREBERRY, $f0, 1 << PSN
db PRZCUREBERRY, $f4, 1 << PAR
db BURNT_BERRY, $f2, 1 << FRZ
db ICE_BERRY, $f1, 1 << BRN
db MINT_BERRY, $f3, SLP
db MIRACLEBERRY, $f6, %11111111
db ANTIDOTE, PARTYMENUTEXT_HEAL_PSN, 1 << PSN
db BURN_HEAL, PARTYMENUTEXT_HEAL_BRN, 1 << BRN
db ICE_HEAL, PARTYMENUTEXT_HEAL_FRZ, 1 << FRZ
db AWAKENING, PARTYMENUTEXT_HEAL_SLP, SLP
db PARLYZ_HEAL, PARTYMENUTEXT_HEAL_PAR, 1 << PAR
db FULL_HEAL, PARTYMENUTEXT_HEAL_ALL, %11111111
db FULL_RESTORE, PARTYMENUTEXT_HEAL_ALL, %11111111
db HEAL_POWDER, PARTYMENUTEXT_HEAL_ALL, %11111111
db PSNCUREBERRY, PARTYMENUTEXT_HEAL_PSN, 1 << PSN
db PRZCUREBERRY, PARTYMENUTEXT_HEAL_PAR, 1 << PAR
db BURNT_BERRY, PARTYMENUTEXT_HEAL_FRZ, 1 << FRZ
db ICE_BERRY, PARTYMENUTEXT_HEAL_BRN, 1 << BRN
db MINT_BERRY, PARTYMENUTEXT_HEAL_SLP, SLP
db MIRACLEBERRY, PARTYMENUTEXT_HEAL_ALL, %11111111
db -1, 0, 0
; f09e
Functionf09e: ; f09e (3:709e)
ld hl, Jumptable_f0a3
ld hl, .jumptable
rst JumpTable
ret
Jumptable_f0a3: ; f0a3 (3:70a3)
.jumptable: ; f0a3 (3:70a3)
dw Functionf2a2
dw Functionf299
dw Functionf29e
RevivalHerb: ; f0a9
ld b, $1
call Functionf1f9
ld b, PARTYMENUACTION_HEALING_ITEM
call UseItem_SelectMon
jp c, Functionf29e
call Functionf0d6
@ -1644,8 +1644,8 @@ RevivalHerb: ; f0a9
Revive:
MaxRevive: ; f0c8
ld b, $1
call Functionf1f9
ld b, PARTYMENUACTION_HEALING_ITEM
call UseItem_SelectMon
jp c, Functionf29e
call Functionf0d6
@ -1692,7 +1692,7 @@ Functionf0d6: ; f0d6
.asm_f117
call Functionf1db
ld a, $f7
ld a, PARTYMENUTEXT_REVIVE
ld [PartyMenuActionText], a
call Functionf279
call UseDisposableItem
@ -1702,8 +1702,8 @@ Functionf0d6: ; f0d6
FullRestore: ; f128
ld b, 1
call Functionf1f9
ld b, PARTYMENUACTION_HEALING_ITEM
call UseItem_SelectMon
jp c, Functionf29e
call Functionf30d
@ -1729,10 +1729,10 @@ Functionf144: ; f144
xor a
ld [hli], a
ld [hl], a
call Functionf030
call HealStatus
call Functionf01e
call Functionf1db
ld a, $f5
ld a, PARTYMENUTEXT_HEAL_HP
ld [PartyMenuActionText], a
call Functionf279
call UseDisposableItem
@ -1805,8 +1805,8 @@ Functionf192: ; f192
Functionf1a9: ; f1a9 (3:71a9)
ld b, 1
call Functionf1f9
ld b, PARTYMENUACTION_HEALING_ITEM
call UseItem_SelectMon
ld a, 2
ret c
@ -1824,7 +1824,7 @@ Functionf1a9: ; f1a9 (3:71a9)
call Functionf2d1
call Functionf01e
call Functionf1db
ld a, $f5
ld a, PARTYMENUTEXT_HEAL_HP
ld [PartyMenuActionText], a
call Functionf279
call UseDisposableItem
@ -1844,23 +1844,23 @@ Functionf1db: ; f1db (3:71db)
ld [wd10a], a
predef_jump AnimateHPBar
Functionf1f9: ; f1f9 (3:71f9)
call Functionf20b
UseItem_SelectMon: ; f1f9 (3:71f9)
call .SelectMon
ret c
ld a, [CurPartySpecies]
cp EGG
jr nz, .asm_f209
jr nz, .not_egg
call CantUseOnEggMessage
scf
ret
.asm_f209
.not_egg
and a
ret
Functionf20b: ; f20b (3:720b)
.SelectMon: ; f20b (3:720b)
ld a, b
ld [PartyMenuActionText], a
push hl
@ -2179,7 +2179,7 @@ Functionf3df: ; f3df (3:73df)
call Functionf30d
call Functionf2d1
call Functionf1db
ld a, $f5
ld a, PARTYMENUTEXT_HEAL_HP
call Functionf24a
call JoyWaitAorB
.asm_f413
@ -2189,35 +2189,38 @@ Functionf3df: ; f3df (3:73df)
ret
Functionf419: ; f419 (3:7419)
.loop
push bc
ld a, $1
ld a, PARTYMENUACTION_HEALING_ITEM
ld [PartyMenuActionText], a
call Functionf21c
pop bc
jr c, .asm_f43e
jr c, .set_carry
ld a, [wd0d8]
dec a
ld c, a
ld a, b
cp c
jr z, .asm_f440
jr z, .loopback
ld a, c
ld [CurPartyMon], a
call Functionf30d
jr z, .asm_f440
jr z, .loopback
call Functionf31b
jr nc, .asm_f440
jr nc, .loopback
xor a
ret
.asm_f43e
.set_carry
scf
ret
.asm_f440
.loopback
push bc
ld hl, UnknownText_0xf44a
call MenuTextBoxBackup
pop bc
jr Functionf419
jr .loop
; f44a (3:744a)
UnknownText_0xf44a: ; 0xf44a
@ -2301,18 +2304,18 @@ PokeDoll: ; f48f
GuardSpec: ; f4ab
ld hl, PlayerSubStatus4
bit 1, [hl]
bit SUBSTATUS_MIST, [hl]
jp nz, WontHaveAnyEffect_NotUsedMessage
set 1, [hl]
set SUBSTATUS_MIST, [hl]
jp Functionf789
; f4b8
DireHit: ; f4b8
ld hl, PlayerSubStatus4
bit 2, [hl]
bit SUBSTATUS_FOCUS_ENERGY, [hl]
jp nz, WontHaveAnyEffect_NotUsedMessage
set 2, [hl]
set SUBSTATUS_FOCUS_ENERGY, [hl]
jp Functionf789
; f4c5
@ -2324,17 +2327,17 @@ XSpecial: ; f4c5
call Functionf789
ld a, [CurItem]
ld hl, Tablef504
ld hl, .x_item_table
.asm_f4ce
.loop
cp [hl]
jr z, .asm_f4d5
jr z, .got_it
rept 2
inc hl
endr
jr .asm_f4ce
jr .loop
.asm_f4d5
.got_it
inc hl
ld b, [hl]
xor a
@ -2354,7 +2357,7 @@ endr
ret
; f504
Tablef504: ; f504
.x_item_table: ; f504
db X_ATTACK, ATTACK
db X_DEFEND, DEFENSE
db X_SPEED, SPEED
@ -2522,8 +2525,8 @@ Mysteryberry: ; f5bf
.loop
; Party Screen opens to choose on which Pkmn to use the Item
ld b, $1
call Functionf1f9
ld b, PARTYMENUACTION_HEALING_ITEM
call UseItem_SelectMon
jp c, Functionf6e0
.loop2
@ -2612,7 +2615,7 @@ Functionf652: ; f652
cp b
jr nz, .asm_f66c
ld a, [PlayerSubStatus5]
bit 3, a
bit SUBSTATUS_TRANSFORMED, a
jr nz, .asm_f66c
call .asm_f677
@ -2708,7 +2711,7 @@ Functionf6e0: ; f6e0
RestorePP: ; f6e8
xor a ; PARTYMON
ld [MonType], a
call Functionf8ec
call GetMaxPPOfMove
ld hl, PartyMon1PP
ld bc, PARTYMON_STRUCT_LENGTH
call GetMthMoveOfNthPartymon
@ -3210,7 +3213,7 @@ Functionf8b9: ; f8b9
push hl
push de
push bc
call Functionf8ec
call GetMaxPPOfMove
pop bc
pop de
ld a, [de]
@ -3229,7 +3232,7 @@ Functionf8b9: ; f8b9
; f8ec
Functionf8ec: ; f8ec
GetMaxPPOfMove: ; f8ec
ld a, [StringBuffer1 + 0]
push af
ld a, [StringBuffer1 + 1]

547
main.asm

File diff suppressed because it is too large Load Diff

View File

@ -561,8 +561,8 @@ PlayerSubStatus5:: ; c66c
; 7 cant run
; 6 destiny bond
; 5 lock-on
; 4
; 3
; 4 encore
; 3 transformed
; 2
; 1
; 0 toxic
@ -1602,6 +1602,11 @@ CurPartyMon:: ; d109
ds 1
wd10a:: ds 1
wPokemonWithdrawDepositParameter::
; 0: Take from PC
; 1: Put into PC
; 2: Take from Daycare
; 3: Put into Daycare
wd10b:: ds 1
wItemQuantityChangeBuffer:: ds 1
wItemQuantityBuffer:: ds 1