mirror of
https://github.com/thornAvery/kep-hack.git
synced 2025-11-05 05:00:59 +13:00
1/256 Text and other transparency enhancements
- In the event of a 1/256 miss, the game will now state the Pokemon evaded the attack to signify its occurrence. This is part of an effort to make misses, overall, more transparent. - Battle Debug now loads some items to assist with testing. - Misleading Guard Spec message in Celadon has been changed to refer to X Special, which it was actually describing. - Removed "it can spook the target sometimes" text when getting the TM for Rock Slide, because it's a LIE
This commit is contained in:
parent
62059aafd5
commit
7ed5c0ae95
|
|
@ -116,6 +116,7 @@ QoL Enhancements
|
|||
- A girl option is now available, featuring the sprite from Pokemon Anniversary Red, which is based on Green's manga appearance.
|
||||
- To accomodate this, Celadon Gym's trainers use their more neutral text from Crystal.
|
||||
- All 151 original Pokemon, plus an additional 100, can be obtained without the use of trading or glitches, including Mew!
|
||||
- Bag capacity is increased from 20 to 30 items.
|
||||
- New Pokedex entries for most Pokemon are available, sourced from the original 1996 Pokedex book by Creatures Inc., restoring a ton of old Kanto lore. Thanks to [Dr. Lava and Nob Ogasawara](http://lavacutcontent.com/1996-creatures-pokedex-translation-1/) for their incredible work translating and writing about it!
|
||||
- Pikachu and Eevee are now starters, featuring fully functional Rival lineups. If you pick Pikachu, he picks Eevee, and if you pick Eevee, he picks Pikachu! Their growth rates have been changed to Medium Slow to give them the early-game power spike the other starters have.
|
||||
- Item Descriptions are available!
|
||||
|
|
@ -126,11 +127,9 @@ QoL Enhancements
|
|||
- The Old and Good Rods have been removed, and the Super Rod, now called the Fishing Rod, is obtained in Pewter City. All fishing encounter tables have been altered to roughly match the levels of the surrounding routes.
|
||||
- Traded Pokemon ("Outsiders") can now be nicknamed at the Name Rater's House.
|
||||
- HP bar has been doubled in speed, having a 1 frame delay per pixel rather than 2.
|
||||
- The "You missed the Pokemon!" message now only plays in the Safari Zone, with regular encounters now stating "It's too strong!". This aims to make the message less misleading while staying true to the setting.
|
||||
- The blinking animation when hit by moves like Tackle now repeats 4 instead of 6 times, speeding up battles by a bit while not sacrificing impact.
|
||||
- The Rock in the Safari Zone now only raises the flee chance by 1.5x, rather than 2x, opening up new strategies.
|
||||
- PP symbol is displayed in the battle menu. PP displayed before, it just looks nicer now. Done by changing a straggler Japanese character.
|
||||
- When dealing 0 damage, there'll now be a special text box, making it less misleading.
|
||||
- Lorelei, Bruno, and Agatha now play the Gym Leader Battle theme.
|
||||
- Trainer DVs are perfect-15s.
|
||||
- The protagonist is referred to in a gender neutral manner.
|
||||
|
|
@ -153,9 +152,12 @@ QoL Enhancements
|
|||
- Blue's superior prices are used, so Porygon only costs 6500 coins.
|
||||
- New prizes include: Cubone, Blastyke, and Cactus.
|
||||
- The Moon Stone is available over TM23 (Dragon Rage). Dragon Rage is still available in Celadon University!
|
||||
- Bag capacity increased from 20 to 30 items.
|
||||
- Spinner tiles move faster.
|
||||
- Fight Debug now allows moves other than Pound.
|
||||
- The "You missed the Pokemon!" message now only plays in the Safari Zone, with regular encounters now stating "It's too strong!". This aims to make the message less misleading while staying true to the setting.
|
||||
- If you miss with the 1/256 uncertainty, it now says the Pokemon "evaded the attack", adding transparency while keeping the original mechanic intact.
|
||||
- When dealing 0 damage, it now says it "didn't leave a scratch" instead of saying you missed, furthering transparency.
|
||||
- Lots of misleading mechanics statements (such as the Guard Spec message in Celadon) have been amended.
|
||||
|
||||
Bug Fixes
|
||||
====
|
||||
|
|
|
|||
|
|
@ -3955,11 +3955,24 @@ PrintMoveFailureText:
|
|||
; This gives players a nice little dopamine rush.
|
||||
ld a, [wDidZeroDamage] ; Grab the variable.
|
||||
cp 1 ; Alright, is it set?
|
||||
jr nz, .skip ; No? Skip these instructions.
|
||||
jr nz, .check256 ; No? Skip these instructions, but don't forget the 1/256 check.
|
||||
ld hl, ZeroDamageText ; Load the zero damage text in.
|
||||
ld a, 0 ; Now shut the address off.
|
||||
ld [wDidZeroDamage], a ; Bink!
|
||||
|
||||
; 1/256 text functionality.
|
||||
; This makes them a feature, with the reasoning being vanilla experience + how it may have been intentional all along.
|
||||
; See Pokemon Stadium's handling of the mechanic for latter point.
|
||||
; Yes I am a fucking psycho
|
||||
; In theory this could be merged with the previous check in some capacity but that's neither here nor there
|
||||
.check256 ; jump point
|
||||
ld a, [wAttackWasDodged] ; Alright, let's see...
|
||||
cp 1 ; Was the attack dodged?
|
||||
jr nz, .skip ; No? Ok, neither of my hardmods are needed. proceed as normal.
|
||||
ld hl, EvadedAttackText ; Oho? Let's load this then.
|
||||
ld a, 0 ; Now to shut off the variable.
|
||||
ld [wAttackWasDodged], a ; Bink!
|
||||
|
||||
.skip
|
||||
ld a, [wCriticalHitOrOHKO]
|
||||
cp $ff
|
||||
|
|
@ -4016,6 +4029,10 @@ ZeroDamageText:
|
|||
prompt
|
||||
text_end
|
||||
|
||||
EvadedAttackText: ; for 1/256, repurposed from leech seed
|
||||
text_far _EvadedAttackText
|
||||
text_end
|
||||
|
||||
KeptGoingAndCrashedText:
|
||||
text_far _KeptGoingAndCrashedText
|
||||
text_end
|
||||
|
|
@ -5570,9 +5587,15 @@ MoveHitTest:
|
|||
; if the random number generated is greater than or equal to the scaled accuracy, the move misses
|
||||
; note that this means that even the highest accuracy is still just a 255/256 chance, not 100%
|
||||
call BattleRandom
|
||||
cp 255 ; is it 1/256?
|
||||
jr z, .oneIn256 ; if true, skip the next few lines.
|
||||
cp b
|
||||
jr nc, .moveMissed
|
||||
ret
|
||||
.oneIn256 ; 1/256 text functionality, used to be more transparent to players.
|
||||
ld a, 1
|
||||
ld [wAttackWasDodged], a
|
||||
;fallthrough
|
||||
.moveMissed
|
||||
xor a
|
||||
ld hl, wDamage ; zero the damage
|
||||
|
|
|
|||
|
|
@ -28,13 +28,14 @@ LeechSeedEffect_:
|
|||
.moveMissed
|
||||
ld c, 50
|
||||
call DelayFrames
|
||||
ld hl, EvadedAttackText
|
||||
ld hl, LeechFailedText
|
||||
jp PrintText
|
||||
|
||||
WasSeededText:
|
||||
text_far _WasSeededText
|
||||
text_end
|
||||
|
||||
EvadedAttackText:
|
||||
text_far _EvadedAttackText
|
||||
; This messed up if I farcalled AttackMissedText, so we're doing this instead.
|
||||
LeechFailedText:
|
||||
text_far _ButItFailedText
|
||||
text_end
|
||||
|
|
|
|||
|
|
@ -76,6 +76,22 @@ TestBattle:
|
|||
.loop
|
||||
call GBPalNormal
|
||||
|
||||
; Get some debug items.
|
||||
ld hl, wNumBagItems
|
||||
ld de, BattleDebugItemsList
|
||||
.items_loop
|
||||
ld a, [de]
|
||||
cp -1
|
||||
jr z, .items_end
|
||||
ld [wcf91], a
|
||||
inc de
|
||||
ld a, [de]
|
||||
inc de
|
||||
ld [wItemQuantity], a
|
||||
call AddItemToInventory
|
||||
jr .items_loop
|
||||
.items_end
|
||||
|
||||
; Don't mess around
|
||||
; with obedience.
|
||||
ld a, 1 << BIT_EARTHBADGE
|
||||
|
|
@ -104,11 +120,17 @@ TestBattle:
|
|||
; This function gives you a way to waste a turn, never know when you'll need it.
|
||||
; Alternatively, add a move to test.
|
||||
ld hl, wPartyMon1Moves
|
||||
ld a, SPLASH
|
||||
ld a, POISON_STING ; Something super weak
|
||||
ld [hli], a
|
||||
ld a, LEECH_SEED ; Test new failure text
|
||||
ld [hli], a
|
||||
ld a, FISSURE ; Something that'll miss easily
|
||||
ld [hli], a
|
||||
ld a, SPLASH ; Skip turn
|
||||
ld [hli], a
|
||||
|
||||
; Opponent's Pokemon.
|
||||
ld a, WEEDLE
|
||||
ld a, SANDY_SHOCKS
|
||||
ld [wCurOpponent], a
|
||||
ld a, 100 ; Set the level you want here.
|
||||
ld [wCurEnemyLVL], a
|
||||
|
|
@ -121,3 +143,17 @@ TestBattle:
|
|||
ld [wUpdateSpritesEnabled], a
|
||||
ldh [hAutoBGTransferEnabled], a
|
||||
jr .loop
|
||||
|
||||
BattleDebugItemsList:
|
||||
db FULL_RESTORE, 99
|
||||
db MAX_ELIXER, 99
|
||||
db FULL_HEAL, 99
|
||||
db X_ATTACK, 99
|
||||
db X_SPECIAL, 99
|
||||
db X_DEFEND, 99
|
||||
db X_SPEED, 99
|
||||
db X_ACCURACY, 99
|
||||
db DIRE_HIT, 99
|
||||
db GUARD_SPEC, 99
|
||||
db POKE_FLUTE, 1
|
||||
db -1 ; end
|
||||
|
|
|
|||
|
|
@ -1273,7 +1273,7 @@ wGymLeaderNo:: db
|
|||
wTrainerNo:: db
|
||||
|
||||
; $00 = normal attack
|
||||
; $01 = critical hit
|
||||
; $01 = critical hit - also used for the 1/256 check we use now.
|
||||
; $02 = successful OHKO
|
||||
; $ff = failed OHKO
|
||||
wCriticalHitOrOHKO:: db
|
||||
|
|
@ -1332,7 +1332,9 @@ wPlayerToxicCounter:: db
|
|||
; low nibble: disable turns left
|
||||
wPlayerDisabledMove:: db
|
||||
|
||||
ds 1
|
||||
; This is used to gauge 1/256 misses.
|
||||
; It loads the "evaded attack" text.
|
||||
wAttackWasDodged:: db
|
||||
|
||||
; when the enemy is attacking multiple times, the number of attacks left
|
||||
wEnemyNumAttacksLeft:: db
|
||||
|
|
|
|||
|
|
@ -126,14 +126,22 @@ _CeladonCityText15::
|
|||
cont "DEPT. STORE!"
|
||||
done
|
||||
|
||||
; Originally, this referred to the Guard Spec as the item that protects from special moves.
|
||||
; Obviously, this is wrong, and a mistranslation. In fact, this may be why it's called the Guard Spec at all.
|
||||
; The Japanese name is "Effect Guard", which is far more transparent.
|
||||
; Anyway, this has been changed to X Special, which is accurate.
|
||||
; To take it a step further, I also note that it improves their own, which implies the Special stat's function to the player.
|
||||
_CeladonCityText16::
|
||||
text "TRAINER TIPS"
|
||||
|
||||
para "GUARD SPEC."
|
||||
para "X SPECIAL"
|
||||
line "protects #MON"
|
||||
cont "against SPECIAL"
|
||||
cont "attacks such as"
|
||||
cont "fire and water!"
|
||||
|
||||
para "It even improves"
|
||||
line "their own!"
|
||||
|
||||
para "Get your items at"
|
||||
line "CELADON DEPT."
|
||||
|
|
|
|||
|
|
@ -57,10 +57,11 @@ _CeladonMartRoofText_4850f::
|
|||
para "@"
|
||||
text_ram wStringBuffer
|
||||
text " contains"
|
||||
line "ROCK SLIDE!"
|
||||
|
||||
para "It can spook the" ; want to remove, but it's weird when done
|
||||
line "target sometimes!@"
|
||||
line "ROCK SLIDE!@"
|
||||
|
||||
; this girl be spittin LIES
|
||||
;para "It can spook the"
|
||||
;line "target sometimes!@"
|
||||
text_end
|
||||
|
||||
_CeladonMartRoofText_48515::
|
||||
|
|
|
|||
Loading…
Reference in a new issue