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 100 ld e, 0 jr c, .ok inc e cp 200 jr c, .ok inc e .ok dec c ld b, 0 ld hl, .Actions add hl, bc add hl, bc add hl, bc ld d, 0 add hl, de ld a, [hl] cp 100 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 .Actions: db +5, +3, +2 ; Gained a level db +5, +3, +2 ; Vitamin db +1, +1, +0 ; X Item db +3, +2, +1 ; Battled a Gym Leader db +1, +1, +0 ; Learned a move db -1, -1, -1 ; Lost to an enemy db -5, -5, -10 ; Fainted due to poison db -5, -5, -10 ; Lost to a much stronger enemy db +1, +1, +1 ; Haircut (Y1) db +3, +3, +1 ; Haircut (Y2) db +5, +5, +2 ; Haircut (Y3) db +1, +1, +1 ; Haircut (O1) db +3, +3, +1 ; Haircut (O2) db +10, +10, +4 ; Haircut (O3) db -5, -5, -10 ; Used Heal Powder or Energypowder (bitter) db -10, -10, -15 ; Used Energy Root (bitter) db -15, -15, -20 ; Used Revival Herb (bitter) db +3, +3, +1 ; Grooming db +10, +6, +4 ; Gained a level in the place where it was caught 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 ld a, [wDayCareMan] bit 0, a jr z, .day_care_lady ld a, [wBreedMon1Level] ; level cp 100 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 5242880 / $10000 jr c, .day_care_lady ld a, 5242880 / $10000 ld [hl], a .day_care_lady ld a, [wDayCareLady] bit 0, a jr z, .check_egg ld a, [wBreedMon2Level] ; level cp 100 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 5242880 / $10000 jr c, .check_egg ld a, 5242880 / $10000 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 callab CheckBreedmonCompatibility ld a, [wd265] cp 230 ld b, -1 + 32 percent 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