You've already forked pokecrystal-board
mirror of
https://gitlab.com/xCrystal/pokecrystal-board.git
synced 2025-12-11 05:02:16 -08:00
Move events/ to engine/events/
This commit is contained in:
223
engine/events/happiness_egg.asm
Executable file
223
engine/events/happiness_egg.asm
Executable file
@@ -0,0 +1,223 @@
|
||||
GetFirstPokemonHappiness: ; 718d
|
||||
ld hl, PartyMon1Happiness
|
||||
ld bc, PARTYMON_STRUCT_LENGTH
|
||||
ld de, PartySpecies
|
||||
.loop
|
||||
ld a, [de]
|
||||
cp EGG
|
||||
jr nz, .done
|
||||
inc de
|
||||
add hl, bc
|
||||
jr .loop
|
||||
|
||||
.done
|
||||
ld [wd265], a
|
||||
ld a, [hl]
|
||||
ld [ScriptVar], a
|
||||
call GetPokemonName
|
||||
jp CopyPokemonName_Buffer1_Buffer3
|
||||
|
||||
CheckFirstMonIsEgg: ; 71ac
|
||||
ld a, [PartySpecies]
|
||||
ld [wd265], a
|
||||
cp EGG
|
||||
ld a, $1
|
||||
jr z, .egg
|
||||
xor a
|
||||
|
||||
.egg
|
||||
ld [ScriptVar], a
|
||||
call GetPokemonName
|
||||
jp CopyPokemonName_Buffer1_Buffer3
|
||||
|
||||
ChangeHappiness: ; 71c2
|
||||
; Perform happiness action c on CurPartyMon
|
||||
|
||||
ld a, [CurPartyMon]
|
||||
inc a
|
||||
ld e, a
|
||||
ld d, 0
|
||||
ld hl, PartySpecies - 1
|
||||
add hl, de
|
||||
ld a, [hl]
|
||||
cp EGG
|
||||
ret z
|
||||
|
||||
push bc
|
||||
ld hl, PartyMon1Happiness
|
||||
ld bc, PARTYMON_STRUCT_LENGTH
|
||||
ld a, [CurPartyMon]
|
||||
call AddNTimes
|
||||
pop bc
|
||||
|
||||
ld d, h
|
||||
ld e, l
|
||||
|
||||
push de
|
||||
ld a, [de]
|
||||
cp HAPPINESS_THRESHOLD_1
|
||||
ld e, 0
|
||||
jr c, .ok
|
||||
inc e
|
||||
cp HAPPINESS_THRESHOLD_2
|
||||
jr c, .ok
|
||||
inc e
|
||||
|
||||
.ok
|
||||
dec c
|
||||
ld b, 0
|
||||
ld hl, HappinessChanges
|
||||
add hl, bc
|
||||
add hl, bc
|
||||
add hl, bc
|
||||
ld d, 0
|
||||
add hl, de
|
||||
ld a, [hl]
|
||||
cp $64 ; why not $80?
|
||||
pop de
|
||||
|
||||
ld a, [de]
|
||||
jr nc, .negative
|
||||
add [hl]
|
||||
jr nc, .done
|
||||
ld a, -1
|
||||
jr .done
|
||||
|
||||
.negative
|
||||
add [hl]
|
||||
jr c, .done
|
||||
xor a
|
||||
|
||||
.done
|
||||
ld [de], a
|
||||
ld a, [wBattleMode]
|
||||
and a
|
||||
ret z
|
||||
ld a, [CurPartyMon]
|
||||
ld b, a
|
||||
ld a, [wPartyMenuCursor]
|
||||
cp b
|
||||
ret nz
|
||||
ld a, [de]
|
||||
ld [BattleMonHappiness], a
|
||||
ret
|
||||
|
||||
|
||||
INCLUDE "data/happiness_changes.asm"
|
||||
|
||||
|
||||
StepHappiness:: ; 725a
|
||||
; Raise the party's happiness by 1 point every other step cycle.
|
||||
|
||||
ld hl, wHappinessStepCount
|
||||
ld a, [hl]
|
||||
inc a
|
||||
and 1
|
||||
ld [hl], a
|
||||
ret nz
|
||||
|
||||
ld de, PartyCount
|
||||
ld a, [de]
|
||||
and a
|
||||
ret z
|
||||
|
||||
ld c, a
|
||||
ld hl, PartyMon1Happiness
|
||||
.loop
|
||||
inc de
|
||||
ld a, [de]
|
||||
cp EGG
|
||||
jr z, .next
|
||||
inc [hl]
|
||||
jr nz, .next
|
||||
ld [hl], $ff
|
||||
|
||||
.next
|
||||
push de
|
||||
ld de, PARTYMON_STRUCT_LENGTH
|
||||
add hl, de
|
||||
pop de
|
||||
dec c
|
||||
jr nz, .loop
|
||||
ret
|
||||
|
||||
|
||||
DayCareStep:: ; 7282
|
||||
; Raise the experience of Day-Care Pokémon every step cycle.
|
||||
|
||||
ld a, [wDayCareMan]
|
||||
bit 0, a
|
||||
jr z, .day_care_lady
|
||||
|
||||
ld a, [wBreedMon1Level] ; level
|
||||
cp MAX_LEVEL
|
||||
jr nc, .day_care_lady
|
||||
ld hl, wBreedMon1Exp + 2 ; exp
|
||||
inc [hl]
|
||||
jr nz, .day_care_lady
|
||||
dec hl
|
||||
inc [hl]
|
||||
jr nz, .day_care_lady
|
||||
dec hl
|
||||
inc [hl]
|
||||
ld a, [hl]
|
||||
cp HIGH(MAX_DAY_CARE_EXP >> 8)
|
||||
jr c, .day_care_lady
|
||||
ld a, HIGH(MAX_DAY_CARE_EXP >> 8)
|
||||
ld [hl], a
|
||||
|
||||
.day_care_lady
|
||||
ld a, [wDayCareLady]
|
||||
bit 0, a
|
||||
jr z, .check_egg
|
||||
|
||||
ld a, [wBreedMon2Level] ; level
|
||||
cp MAX_LEVEL
|
||||
jr nc, .check_egg
|
||||
ld hl, wBreedMon2Exp + 2 ; exp
|
||||
inc [hl]
|
||||
jr nz, .check_egg
|
||||
dec hl
|
||||
inc [hl]
|
||||
jr nz, .check_egg
|
||||
dec hl
|
||||
inc [hl]
|
||||
ld a, [hl]
|
||||
cp HIGH(MAX_DAY_CARE_EXP >> 8)
|
||||
jr c, .check_egg
|
||||
ld a, HIGH(MAX_DAY_CARE_EXP >> 8)
|
||||
ld [hl], a
|
||||
|
||||
.check_egg
|
||||
ld hl, wDayCareMan
|
||||
bit 5, [hl] ; egg
|
||||
ret z
|
||||
ld hl, wStepsToEgg
|
||||
dec [hl]
|
||||
ret nz
|
||||
|
||||
call Random
|
||||
ld [hl], a
|
||||
callfar CheckBreedmonCompatibility
|
||||
ld a, [wd265]
|
||||
cp 230
|
||||
ld b, 32 percent - 1
|
||||
jr nc, .okay
|
||||
ld a, [wd265]
|
||||
cp 170
|
||||
ld b, 16 percent
|
||||
jr nc, .okay
|
||||
ld a, [wd265]
|
||||
cp 110
|
||||
ld b, 12 percent
|
||||
jr nc, .okay
|
||||
ld b, 4 percent
|
||||
|
||||
.okay
|
||||
call Random
|
||||
cp b
|
||||
ret nc
|
||||
ld hl, wDayCareMan
|
||||
res 5, [hl]
|
||||
set 6, [hl]
|
||||
ret
|
||||
Reference in New Issue
Block a user