Strong Arm, Water Sport, and more HMs.
This adds Rock Climb functionality to Strong Arm and Dive functionality to Water Sport, as discussed in the server. HMs have been added, but we need 16bit Items to add Wind Ride, and I haven't finished their functionality.
The Rock Climb tile is a bit terrible, it's not easy to notice. Maybe change so that it works well with yellow or another colour?
This does not build due to issues with effect_commands.asm, but since Zeta is meant to be working on the mapping and Water Sport anyway, it seems to be up his alley.
I ported over much of the underwater assets Rangi was using as they looked very pretty. I imagine it'll be fun to utilise going forward. May as well, right?
I shall now lay down in a dark room.
Review: c21561ea71 (diff-5508f3b794fc68821ba35e94b6a293b2aaaa16c02a1b34fac70d03fd2f74c4b2R113)
|
@ -82,6 +82,7 @@ Additionally, there have been many wild encounter tweaks. View this document for
|
||||||
- The GS Ball event has been restored, now being obtainable after beating the Elite Four and trying to exit the building.
|
- The GS Ball event has been restored, now being obtainable after beating the Elite Four and trying to exit the building.
|
||||||
- The Egg Ticket and Eon Mail events have been restored, now being associated with Buena's Password. Redeeming the Egg Ticket gives you an Odd Egg with the usual Pokemon pool and Shiny chances; this is soft resettable if you like that sort of thing.
|
- The Egg Ticket and Eon Mail events have been restored, now being associated with Buena's Password. Redeeming the Egg Ticket gives you an Odd Egg with the usual Pokemon pool and Shiny chances; this is soft resettable if you like that sort of thing.
|
||||||
- Additionally, old lore relating to the area has now been restored, including something about the Unown!
|
- Additionally, old lore relating to the area has now been restored, including something about the Unown!
|
||||||
|
- Walls can be climbed using Strong Arm, functionality identical to HGSS Rock Climb.
|
||||||
|
|
||||||
# Credits
|
# Credits
|
||||||
As the open source nature of this project implies, people are free to reuse what's here for their own ends, **so long as credit is given to this hack and those who worked on what you reuse.** Additionally, we strongly urge you to make any projects using JEP's content open source. JEP strongly supports the [free software movement](https://www.fsf.org/about/) and its four essential freedoms. If you have any questions on the topic of content reuse, contact @ plague_von_karma on Discord.
|
As the open source nature of this project implies, people are free to reuse what's here for their own ends, **so long as credit is given to this hack and those who worked on what you reuse.** Additionally, we strongly urge you to make any projects using JEP's content open source. JEP strongly supports the [free software movement](https://www.fsf.org/about/) and its four essential freedoms. If you have any questions on the topic of content reuse, contact @ plague_von_karma on Discord.
|
||||||
|
@ -147,6 +148,7 @@ JEP-affiliated musicians require music to be used with direct credit for non-com
|
||||||
- Rangi42/polishedcrystal: [Decoration shop script](https://github.com/Rangi42/polishedcrystal/blob/master/maps/GoldenrodHarbor.asm)
|
- Rangi42/polishedcrystal: [Decoration shop script](https://github.com/Rangi42/polishedcrystal/blob/master/maps/GoldenrodHarbor.asm)
|
||||||
- Nayru62 (Crystal Legacy) - [DVs & Hidden Power display code](https://github.com/cRz-Shadows/Pokemon_Crystal_Legacy/blob/main/engine/pokemon/stats_screen.asm)
|
- Nayru62 (Crystal Legacy) - [DVs & Hidden Power display code](https://github.com/cRz-Shadows/Pokemon_Crystal_Legacy/blob/main/engine/pokemon/stats_screen.asm)
|
||||||
- SoupPotato - Move Animations and Pallettes [here](https://github.com/PiaCarrot/mae-pokeorange/commit/9e148c8a28bbe6850f3df11605b4f7b4068a4652) and [here](https://github.com/PiaCarrot/mae-pokeorange/commit/52f8f8e77189b01453590c5496bbc7a9332b6237).
|
- SoupPotato - Move Animations and Pallettes [here](https://github.com/PiaCarrot/mae-pokeorange/commit/9e148c8a28bbe6850f3df11605b4f7b4068a4652) and [here](https://github.com/PiaCarrot/mae-pokeorange/commit/52f8f8e77189b01453590c5496bbc7a9332b6237).
|
||||||
|
- [PiaCarrot/pokeorange](https://github.com/PiaCarrot/pokeorange) - [Rock Climb functionality](https://github.com/pret/pokecrystal/wiki/Rock-Climb)
|
||||||
|
|
||||||
## Academic References
|
## Academic References
|
||||||
* Bolles, D. & Bolles, A. (1996). A Grammar of the Yucatecan Mayan Language. Revised ed. Lancaster, California: Labyrinthos Press. ISBN 0-911437-49-5. Available at: http://www.famsi.org/reports/96072/grammar/index.html
|
* Bolles, D. & Bolles, A. (1996). A Grammar of the Yucatecan Mayan Language. Revised ed. Lancaster, California: Labyrinthos Press. ISBN 0-911437-49-5. Available at: http://www.famsi.org/reports/96072/grammar/index.html
|
||||||
|
|
|
@ -220,6 +220,8 @@ DEF BATTLEANIM_BASE_TILE EQU 7 * 7 ; Maximum size of a pokemon picture
|
||||||
const ANIM_OBJ_PLAYERHEAD_2ROW
|
const ANIM_OBJ_PLAYERHEAD_2ROW
|
||||||
const ANIM_OBJ_COIN_HURL
|
const ANIM_OBJ_COIN_HURL
|
||||||
const ANIM_OBJ_SHOOTING_MIST
|
const ANIM_OBJ_SHOOTING_MIST
|
||||||
|
const ANIM_OBJ_WATER_SPORT_1
|
||||||
|
const ANIM_OBJ_WATER_SPORT_2
|
||||||
DEF NUM_ANIM_OBJS EQU const_value
|
DEF NUM_ANIM_OBJS EQU const_value
|
||||||
|
|
||||||
; DoBattleAnimFrame arguments (see engine/battle_anims/functions.asm)
|
; DoBattleAnimFrame arguments (see engine/battle_anims/functions.asm)
|
||||||
|
|
|
@ -194,7 +194,7 @@ DEF ALL_STATUS EQU (1 << PSN) | (1 << BRN) | (1 << FRZ) | (1 << PAR) | SLP_MASK
|
||||||
const SUBSTATUS_X_ACCURACY
|
const SUBSTATUS_X_ACCURACY
|
||||||
const SUBSTATUS_MIST
|
const SUBSTATUS_MIST
|
||||||
const SUBSTATUS_FOCUS_ENERGY
|
const SUBSTATUS_FOCUS_ENERGY
|
||||||
const_skip
|
const SUBSTATUS_UNDERWATER
|
||||||
const SUBSTATUS_SUBSTITUTE
|
const SUBSTATUS_SUBSTITUTE
|
||||||
const SUBSTATUS_RECHARGE
|
const SUBSTATUS_RECHARGE
|
||||||
const SUBSTATUS_RAGE
|
const SUBSTATUS_RAGE
|
||||||
|
|
|
@ -10,6 +10,7 @@ DEF COLL_FLOOR EQU $00
|
||||||
DEF COLL_01 EQU $01 ; garbage
|
DEF COLL_01 EQU $01 ; garbage
|
||||||
DEF COLL_03 EQU $03 ; garbage
|
DEF COLL_03 EQU $03 ; garbage
|
||||||
DEF COLL_04 EQU $04 ; garbage
|
DEF COLL_04 EQU $04 ; garbage
|
||||||
|
DEF COLL_ROCKY_WALL EQU $06 ; added using this tutorial https://github.com/pret/pokecrystal/wiki/Rock-Climb
|
||||||
DEF COLL_WALL EQU $07
|
DEF COLL_WALL EQU $07
|
||||||
DEF COLL_CUT_08 EQU $08 ; unused
|
DEF COLL_CUT_08 EQU $08 ; unused
|
||||||
DEF COLL_TALL_GRASS_10 EQU $10 ; unused
|
DEF COLL_TALL_GRASS_10 EQU $10 ; unused
|
||||||
|
@ -26,7 +27,8 @@ DEF COLL_WHIRLPOOL EQU $24
|
||||||
DEF COLL_BUOY EQU $27
|
DEF COLL_BUOY EQU $27
|
||||||
DEF COLL_CUT_28 EQU $28 ; garbage
|
DEF COLL_CUT_28 EQU $28 ; garbage
|
||||||
DEF COLL_WATER EQU $29
|
DEF COLL_WATER EQU $29
|
||||||
DEF COLL_ICE_2B EQU $2b ; unused
|
DEF COLL_DIVE_DOWN EQU $2a
|
||||||
|
DEF COLL_DIVE_UP EQU $2b
|
||||||
DEF COLL_WHIRLPOOL_2C EQU $2c ; unused
|
DEF COLL_WHIRLPOOL_2C EQU $2c ; unused
|
||||||
DEF COLL_WATERFALL_RIGHT EQU $30 ; unused
|
DEF COLL_WATERFALL_RIGHT EQU $30 ; unused
|
||||||
DEF COLL_WATERFALL_LEFT EQU $31 ; unused
|
DEF COLL_WATERFALL_LEFT EQU $31 ; unused
|
||||||
|
|
|
@ -291,6 +291,12 @@ DEF HM01 EQU const_value
|
||||||
add_hm FLASH ; f8
|
add_hm FLASH ; f8
|
||||||
add_hm WHIRLPOOL ; f9
|
add_hm WHIRLPOOL ; f9
|
||||||
add_hm WATERFALL ; fa
|
add_hm WATERFALL ; fa
|
||||||
|
; nihon hms - Bounce is left out under the pretense of it being Waterfall. We are making it a field move, though.
|
||||||
|
add_hm UPROOT
|
||||||
|
add_hm WATER_SPORT
|
||||||
|
add_hm STRONG_ARM
|
||||||
|
add_hm BRIGHT_MOSS
|
||||||
|
add_hm WIND_RIDE ; ADDME: this is impossible to add until 16bit items exist. add once it's there.
|
||||||
DEF NUM_HMS EQU __tmhm_value__ - NUM_TMS - 1
|
DEF NUM_HMS EQU __tmhm_value__ - NUM_TMS - 1
|
||||||
|
|
||||||
MACRO add_mt
|
MACRO add_mt
|
||||||
|
|
|
@ -55,6 +55,11 @@
|
||||||
const MONMENUITEM_ROCKSMASH ; 12
|
const MONMENUITEM_ROCKSMASH ; 12
|
||||||
const MONMENUITEM_MILKDRINK ; 13
|
const MONMENUITEM_MILKDRINK ; 13
|
||||||
const MONMENUITEM_SWEETSCENT ; 14
|
const MONMENUITEM_SWEETSCENT ; 14
|
||||||
|
const MONMENUITEM_UPROOT
|
||||||
|
const MONMENUITEM_WATER_SPORT
|
||||||
|
const MONMENUITEM_STRONG_ARM
|
||||||
|
const MONMENUITEM_BRIGHT_MOSS
|
||||||
|
const MONMENUITEM_WIND_RIDE
|
||||||
; options
|
; options
|
||||||
const MONMENUITEM_STATS ; 15
|
const MONMENUITEM_STATS ; 15
|
||||||
const MONMENUITEM_SWITCH ; 16
|
const MONMENUITEM_SWITCH ; 16
|
||||||
|
|
|
@ -158,4 +158,7 @@
|
||||||
const EFFECT_FLY
|
const EFFECT_FLY
|
||||||
const EFFECT_DEFENSE_CURL
|
const EFFECT_DEFENSE_CURL
|
||||||
const EFFECT_COIN_HURL
|
const EFFECT_COIN_HURL
|
||||||
|
const EFFECT_SURF
|
||||||
|
const EFFECT_WHIRLPOOL
|
||||||
|
const EFFECT_BOUNCE
|
||||||
DEF NUM_MOVE_EFFECTS EQU const_value
|
DEF NUM_MOVE_EFFECTS EQU const_value
|
||||||
|
|
|
@ -145,6 +145,7 @@
|
||||||
const SPRITE_BALDING_GUY
|
const SPRITE_BALDING_GUY
|
||||||
const SPRITE_GAMEBOY_GIRL
|
const SPRITE_GAMEBOY_GIRL
|
||||||
const SPRITE_OVERWORLD_PIKACHU
|
const SPRITE_OVERWORLD_PIKACHU
|
||||||
|
const SPRITE_DIVE
|
||||||
DEF NUM_OVERWORLD_SPRITES EQU const_value - 1
|
DEF NUM_OVERWORLD_SPRITES EQU const_value - 1
|
||||||
|
|
||||||
; SpriteMons indexes (see data/sprites/sprite_mons.asm)
|
; SpriteMons indexes (see data/sprites/sprite_mons.asm)
|
||||||
|
|
|
@ -273,6 +273,7 @@ DEF PLAYER_SKATE EQU 2
|
||||||
DEF PLAYER_SURF EQU 4
|
DEF PLAYER_SURF EQU 4
|
||||||
DEF PLAYER_SURF_PIKA EQU 8
|
DEF PLAYER_SURF_PIKA EQU 8
|
||||||
DEF PLAYER_RUN EQU 16
|
DEF PLAYER_RUN EQU 16
|
||||||
|
DEF PLAYER_WATER_SPORT EQU 16
|
||||||
|
|
||||||
; wCelebiEvent::
|
; wCelebiEvent::
|
||||||
DEF CELEBIEVENT_FOREST_IS_RESTLESS_F EQU 2
|
DEF CELEBIEVENT_FOREST_IS_RESTLESS_F EQU 2
|
||||||
|
|
|
@ -181,4 +181,5 @@ BattleCommandPointers:
|
||||||
dw BattleCommand_StartLoop
|
dw BattleCommand_StartLoop
|
||||||
dw BattleCommand_Curl
|
dw BattleCommand_Curl
|
||||||
dw BattleCommand_CoinHurlPower
|
dw BattleCommand_CoinHurlPower
|
||||||
|
dw BattleCommand_DoubleUnderwaterDamage
|
||||||
assert_table_length NUM_EFFECT_COMMANDS
|
assert_table_length NUM_EFFECT_COMMANDS
|
||||||
|
|
|
@ -399,4 +399,6 @@ BattleAnimObjects:
|
||||||
battleanimobj ABSOLUTE_X, $ff, BATTLEANIMFRAMESET_75, BATTLEANIMFUNC_COINHURL, PAL_BATTLE_OB_BROWN, ANIM_GFX_STATUS
|
battleanimobj ABSOLUTE_X, $ff, BATTLEANIMFRAMESET_75, BATTLEANIMFUNC_COINHURL, PAL_BATTLE_OB_BROWN, ANIM_GFX_STATUS
|
||||||
; ANIM_OBJ_SHOOTING_MIST
|
; ANIM_OBJ_SHOOTING_MIST
|
||||||
battleanimobj RELATIVE_X | X_FLIP, $90, BATTLEANIMFRAMESET_MIST, BATTLEANIMFUNC_USER_TO_TARGET_DISAPPEAR, PAL_BATTLE_OB_GRAY, ANIM_GFX_HAZE
|
battleanimobj RELATIVE_X | X_FLIP, $90, BATTLEANIMFRAMESET_MIST, BATTLEANIMFUNC_USER_TO_TARGET_DISAPPEAR, PAL_BATTLE_OB_GRAY, ANIM_GFX_HAZE
|
||||||
|
battleanimobj RELATIVE_X | X_FLIP, $a8, BATTLEANIMFRAMESET_67, BATTLEANIMFUNC_26, PAL_BATTLE_OB_BLUE, $1a ; ANIM_OBJ_DIVE_1
|
||||||
|
battleanimobj RELATIVE_X | X_FLIP, $a8, BATTLEANIMFRAMESET_68, BATTLEANIMFUNC_00, PAL_BATTLE_OB_BLUE, $1a ; ANIM_OBJ_DIVE_2
|
||||||
assert_table_length NUM_ANIM_OBJS
|
assert_table_length NUM_ANIM_OBJS
|
||||||
|
|
|
@ -7,7 +7,7 @@ TileCollisionTable::
|
||||||
db LAND_TILE ; COLL_03
|
db LAND_TILE ; COLL_03
|
||||||
db LAND_TILE ; COLL_04
|
db LAND_TILE ; COLL_04
|
||||||
db LAND_TILE ; 05
|
db LAND_TILE ; 05
|
||||||
db LAND_TILE ; 06
|
db WALL_TILE ; COLL_ROCKY_WALL
|
||||||
db WALL_TILE ; COLL_WALL
|
db WALL_TILE ; COLL_WALL
|
||||||
db LAND_TILE ; COLL_CUT_08
|
db LAND_TILE ; COLL_CUT_08
|
||||||
db LAND_TILE ; 09
|
db LAND_TILE ; 09
|
||||||
|
@ -43,8 +43,8 @@ TileCollisionTable::
|
||||||
db WALL_TILE ; COLL_BUOY
|
db WALL_TILE ; COLL_BUOY
|
||||||
db WATER_TILE ; COLL_CUT_28
|
db WATER_TILE ; COLL_CUT_28
|
||||||
db WATER_TILE ; COLL_WATER
|
db WATER_TILE ; COLL_WATER
|
||||||
db WATER_TILE | TALK ; 2a
|
db WATERTILE | TALK ; COLL_DIVE_DOWN
|
||||||
db LAND_TILE ; COLL_ICE_2B
|
db LANDTILE | TALK ; COLL_DIVE_UP
|
||||||
db WATER_TILE | TALK ; COLL_WHIRLPOOL_2C
|
db WATER_TILE | TALK ; COLL_WHIRLPOOL_2C
|
||||||
db WATER_TILE ; 2d
|
db WATER_TILE ; 2d
|
||||||
db WATER_TILE ; 2e
|
db WATER_TILE ; 2e
|
||||||
|
|
|
@ -510,17 +510,17 @@ ItemAttributes:
|
||||||
item_attribute 0, HELD_NONE, 0, CANT_SELECT | CANT_TOSS, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
|
item_attribute 0, HELD_NONE, 0, CANT_SELECT | CANT_TOSS, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
|
||||||
; HM07
|
; HM07
|
||||||
item_attribute 0, HELD_NONE, 0, CANT_SELECT | CANT_TOSS, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
|
item_attribute 0, HELD_NONE, 0, CANT_SELECT | CANT_TOSS, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
|
||||||
|
; HM08
|
||||||
|
item_attribute 0, HELD_NONE, 0, CANT_SELECT | CANT_TOSS, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
|
||||||
|
; HM09
|
||||||
|
item_attribute 0, HELD_NONE, 0, CANT_SELECT | CANT_TOSS, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
|
||||||
|
; HM10
|
||||||
|
item_attribute 0, HELD_NONE, 0, CANT_SELECT | CANT_TOSS, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
|
||||||
|
; HM11
|
||||||
|
item_attribute 0, HELD_NONE, 0, CANT_SELECT | CANT_TOSS, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
|
||||||
|
; HM12
|
||||||
|
item_attribute 0, HELD_NONE, 0, CANT_SELECT | CANT_TOSS, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
|
||||||
assert_table_length NUM_ITEMS + NUM_TMS + NUM_HMS
|
assert_table_length NUM_ITEMS + NUM_TMS + NUM_HMS
|
||||||
; $fb
|
|
||||||
item_attribute $9999, HELD_NONE, 0, NO_LIMITS, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
|
|
||||||
; $fc
|
|
||||||
item_attribute $9999, HELD_NONE, 0, NO_LIMITS, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
|
|
||||||
; $fd
|
|
||||||
item_attribute $9999, HELD_NONE, 0, NO_LIMITS, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
|
|
||||||
; $fe
|
|
||||||
item_attribute $9999, HELD_NONE, 0, NO_LIMITS, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
|
|
||||||
; $ff
|
|
||||||
item_attribute $9999, HELD_NONE, 0, NO_LIMITS, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
|
|
||||||
; $00
|
; $00
|
||||||
item_attribute $9999, HELD_NONE, 0, NO_LIMITS, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
|
item_attribute $9999, HELD_NONE, 0, NO_LIMITS, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
|
||||||
assert_table_length $100
|
assert_table_length $100
|
||||||
|
|
|
@ -252,11 +252,12 @@ ItemNames::
|
||||||
li "HM05"
|
li "HM05"
|
||||||
li "HM06"
|
li "HM06"
|
||||||
li "HM07"
|
li "HM07"
|
||||||
|
li "HM08"
|
||||||
|
; nihon hms
|
||||||
|
li "HM09"
|
||||||
|
li "HM10" ; BUG: HMSs over 9 display numbers incorrectly. Need to account for more than 9 HMs in bag display. The bug isn't here, it should be in the bag script.
|
||||||
|
li "HM11"
|
||||||
|
li "HM12"
|
||||||
assert_list_length NUM_ITEMS + NUM_TMS + NUM_HMS
|
assert_list_length NUM_ITEMS + NUM_TMS + NUM_HMS
|
||||||
li "TERU-SAMA"
|
|
||||||
li "TERU-SAMA"
|
|
||||||
li "TERU-SAMA"
|
|
||||||
li "TERU-SAMA"
|
|
||||||
li "TERU-SAMA"
|
|
||||||
li "?"
|
li "?"
|
||||||
assert_list_length $100
|
assert_list_length $100
|
||||||
|
|
|
@ -14,8 +14,13 @@ MonMenuOptions:
|
||||||
dbbw MONMENU_FIELD_MOVE, MONMENUITEM_SOFTBOILED, SOFTBOILED
|
dbbw MONMENU_FIELD_MOVE, MONMENUITEM_SOFTBOILED, SOFTBOILED
|
||||||
dbbw MONMENU_FIELD_MOVE, MONMENUITEM_HEADBUTT, HEADBUTT
|
dbbw MONMENU_FIELD_MOVE, MONMENUITEM_HEADBUTT, HEADBUTT
|
||||||
dbbw MONMENU_FIELD_MOVE, MONMENUITEM_ROCKSMASH, ROCK_SMASH
|
dbbw MONMENU_FIELD_MOVE, MONMENUITEM_ROCKSMASH, ROCK_SMASH
|
||||||
dbbw MONMENU_FIELD_MOVE, MONMENUITEM_MILKDRINK, MILK_DRINK
|
dbbw MONMENU_FIELD_MOVE, MONMENUITEM_MILKDRINK, MILK_DRINK ; TESTME: Am I high or is this wrong?
|
||||||
dbbw MONMENU_FIELD_MOVE, MONMENUITEM_SWEETSCENT, SWEET_SCENT
|
dbbw MONMENU_FIELD_MOVE, MONMENUITEM_SWEETSCENT, SWEET_SCENT
|
||||||
|
dbbw MONMENU_FIELD_MOVE, MONMENUITEM_UPROOT, UPROOT
|
||||||
|
dbbw MONMENU_FIELD_MOVE, MONMENUITEM_WATER_SPORT, WATER_SPORT
|
||||||
|
dbbw MONMENU_FIELD_MOVE, MONMENUITEM_STRONG_ARM, STRONG_ARM
|
||||||
|
dbbw MONMENU_FIELD_MOVE, MONMENUITEM_BRIGHT_MOSS, BRIGHT_MOSS
|
||||||
|
dbbw MONMENU_FIELD_MOVE, MONMENUITEM_WIND_RIDE, WIND_RIDE
|
||||||
; options
|
; options
|
||||||
dbbw MONMENU_MENUOPTION, MONMENUITEM_STATS, .stats
|
dbbw MONMENU_MENUOPTION, MONMENUITEM_STATS, .stats
|
||||||
dbbw MONMENU_MENUOPTION, MONMENUITEM_SWITCH, .switch
|
dbbw MONMENU_MENUOPTION, MONMENUITEM_SWITCH, .switch
|
||||||
|
|
|
@ -291,7 +291,7 @@ BattleAnimations::
|
||||||
dw BattleAnim_Psybeam ; Synchronize
|
dw BattleAnim_Psybeam ; Synchronize
|
||||||
dw BattleAnim_StrongArm
|
dw BattleAnim_StrongArm
|
||||||
dw BattleAnim_Uppercut
|
dw BattleAnim_Uppercut
|
||||||
dw BattleAnim_WaterGun ; uhhh
|
dw BattleAnim_WaterSport
|
||||||
dw BattleAnim_Wind_Ride ; Wind Ride but real
|
dw BattleAnim_Wind_Ride ; Wind Ride but real
|
||||||
dw BattleAnim_Flash ; Dazzling Gleam
|
dw BattleAnim_Flash ; Dazzling Gleam
|
||||||
dw BattleAnim_Sing ; Disarming Voice
|
dw BattleAnim_Sing ; Disarming Voice
|
||||||
|
@ -5055,3 +5055,40 @@ BattleAnim_ShowMon_1:
|
||||||
anim_incobj 1
|
anim_incobj 1
|
||||||
anim_wait 1
|
anim_wait 1
|
||||||
anim_ret
|
anim_ret
|
||||||
|
|
||||||
|
BattleAnim_WaterSport:
|
||||||
|
anim_2gfx ANIM_GFX_SAND, ANIM_GFX_WATER
|
||||||
|
anim_if_param_equal $0, .hit
|
||||||
|
anim_if_param_equal $2, .fail
|
||||||
|
anim_call BattleAnim_FollowPlayerHead_0
|
||||||
|
anim_bgeffect ANIM_BG_DIG, $0, $1, $1
|
||||||
|
anim_obj ANIM_OBJ_DIVE_2, 72, 104, $0
|
||||||
|
anim_sound 0, 0, SFX_BUBBLEBEAM
|
||||||
|
.loop
|
||||||
|
anim_obj ANIM_OBJ_DIVE_1, 56, 104, $0
|
||||||
|
anim_wait 16
|
||||||
|
anim_loop 6, .loop
|
||||||
|
anim_wait 32
|
||||||
|
anim_bgeffect ANIM_BG_HIDE_MON, $0, $1, $0
|
||||||
|
anim_wait 8
|
||||||
|
anim_incbgeffect ANIM_BG_DIG
|
||||||
|
anim_call BattleAnim_ShowMon_0
|
||||||
|
anim_ret
|
||||||
|
.hit
|
||||||
|
anim_bgeffect ANIM_BG_30, $0, $0, $0
|
||||||
|
anim_sound 0, 1, SFX_HYDRO_PUMP
|
||||||
|
anim_obj ANIM_OBJ_HYDRO_PUMP, 124, 72, $0
|
||||||
|
anim_obj ANIM_OBJ_HYDRO_PUMP, 140, 72, $0
|
||||||
|
anim_bgeffect ANIM_BG_31, $30, $0, $0
|
||||||
|
anim_wait 12
|
||||||
|
anim_obj ANIM_OBJ_HYDRO_PUMP, 132, 72, $0
|
||||||
|
anim_bgeffect ANIM_BG_31, $1c, $0, $0
|
||||||
|
anim_wait 24
|
||||||
|
anim_bgeffect ANIM_BG_31, $8, $0, $0
|
||||||
|
anim_wait 24
|
||||||
|
anim_bgeffect ANIM_BG_32, $0, $0, $0
|
||||||
|
anim_wait 16
|
||||||
|
.fail
|
||||||
|
anim_bgeffect ANIM_BG_ENTER_MON, $0, $1, $0
|
||||||
|
anim_wait 32
|
||||||
|
anim_ret
|
||||||
|
|
|
@ -1324,8 +1324,8 @@ UppercutDescription:
|
||||||
next "cause flinching.@"
|
next "cause flinching.@"
|
||||||
|
|
||||||
WaterSportDescription:
|
WaterSportDescription:
|
||||||
db "Lowers FIRE move" ; I really want to change this tbh
|
db "Lowers FIRE move"
|
||||||
next "power.@"
|
next "power to attack.@"
|
||||||
|
|
||||||
DazzlingGleamDescription:
|
DazzlingGleamDescription:
|
||||||
db "Flashes a bright"
|
db "Flashes a bright"
|
||||||
|
|
|
@ -2097,3 +2097,68 @@ CoinHurl: ; Identical to Return, except it calculates damage differently, and do
|
||||||
checkfaint
|
checkfaint
|
||||||
buildopponentrage
|
buildopponentrage
|
||||||
endmove
|
endmove
|
||||||
|
|
||||||
|
Surf:
|
||||||
|
checkobedience
|
||||||
|
usedmovetext
|
||||||
|
doturn
|
||||||
|
critical
|
||||||
|
damagestats
|
||||||
|
damagecalc
|
||||||
|
stab
|
||||||
|
damagevariation
|
||||||
|
doubleunderwaterdamage
|
||||||
|
checkhit
|
||||||
|
moveanim
|
||||||
|
failuretext
|
||||||
|
applydamage
|
||||||
|
criticaltext
|
||||||
|
supereffectivetext
|
||||||
|
buildopponentrage
|
||||||
|
kingsrock
|
||||||
|
endmove
|
||||||
|
|
||||||
|
Whirlpool:
|
||||||
|
checkobedience
|
||||||
|
usedmovetext
|
||||||
|
doturn
|
||||||
|
checkhit
|
||||||
|
critical
|
||||||
|
damagestats
|
||||||
|
damagecalc
|
||||||
|
stab
|
||||||
|
damagevariation
|
||||||
|
doubleunderwaterdamage
|
||||||
|
clearmissdamage
|
||||||
|
moveanim
|
||||||
|
failuretext
|
||||||
|
applydamage
|
||||||
|
criticaltext
|
||||||
|
supereffectivetext
|
||||||
|
buildopponentrage
|
||||||
|
traptarget
|
||||||
|
endmove
|
||||||
|
|
||||||
|
Bounce:
|
||||||
|
checkcharge
|
||||||
|
checkobedience
|
||||||
|
doturn
|
||||||
|
charge
|
||||||
|
usedmovetext
|
||||||
|
critical
|
||||||
|
damagestats
|
||||||
|
damagecalc
|
||||||
|
stab
|
||||||
|
damagevariation
|
||||||
|
checkhit
|
||||||
|
moveanimnosub
|
||||||
|
raisesub
|
||||||
|
failuretext
|
||||||
|
applydamage
|
||||||
|
criticaltext
|
||||||
|
supereffectivetext
|
||||||
|
checkfaint
|
||||||
|
buildopponentrage
|
||||||
|
paralyzetarget
|
||||||
|
kingsrock
|
||||||
|
endmove
|
||||||
|
|
|
@ -159,4 +159,7 @@ MoveEffectsPointers:
|
||||||
dw Fly
|
dw Fly
|
||||||
dw DefenseCurl
|
dw DefenseCurl
|
||||||
dw CoinHurl
|
dw CoinHurl
|
||||||
|
dw Surf
|
||||||
|
dw Whirlpool
|
||||||
|
dw Bounce
|
||||||
assert_table_length NUM_MOVE_EFFECTS
|
assert_table_length NUM_MOVE_EFFECTS
|
||||||
|
|
|
@ -74,7 +74,7 @@ Moves1:
|
||||||
move EFFECT_MIST, 0, ICE, 100, 30, 0 ;MIST
|
move EFFECT_MIST, 0, ICE, 100, 30, 0 ;MIST
|
||||||
move EFFECT_NORMAL_HIT, 40, WATER, 100, 25, 0 ;WATER_GUN
|
move EFFECT_NORMAL_HIT, 40, WATER, 100, 25, 0 ;WATER_GUN
|
||||||
move EFFECT_NORMAL_HIT, 120, WATER, 80, 5, 0 ;HYDRO_PUMP
|
move EFFECT_NORMAL_HIT, 120, WATER, 80, 5, 0 ;HYDRO_PUMP
|
||||||
move EFFECT_NORMAL_HIT, 95, WATER, 100, 15, 0 ;SURF
|
move EFFECT_SURF, 95, WATER, 100, 15, 0 ;SURF
|
||||||
move EFFECT_FREEZE_HIT, 95, ICE, 100, 10, 10 ;ICE_BEAM
|
move EFFECT_FREEZE_HIT, 95, ICE, 100, 10, 10 ;ICE_BEAM
|
||||||
move EFFECT_FREEZE_HIT, 120, ICE, 70, 5, 10 ;BLIZZARD
|
move EFFECT_FREEZE_HIT, 120, ICE, 70, 5, 10 ;BLIZZARD
|
||||||
move EFFECT_CONFUSE_HIT, 65, PSYCHIC_TYPE, 100, 20, 10 ;PSYBEAM
|
move EFFECT_CONFUSE_HIT, 65, PSYCHIC_TYPE, 100, 20, 10 ;PSYBEAM
|
||||||
|
@ -267,21 +267,21 @@ Moves1:
|
||||||
move EFFECT_SP_DEF_DOWN_HIT, 80, GHOST, 100, 15, 20 ;SHADOW_BALL
|
move EFFECT_SP_DEF_DOWN_HIT, 80, GHOST, 100, 15, 20 ;SHADOW_BALL
|
||||||
move EFFECT_FUTURE_SIGHT, 80, PSYCHIC_TYPE, 90, 15, 0 ;FUTURE_SIGHT
|
move EFFECT_FUTURE_SIGHT, 80, PSYCHIC_TYPE, 90, 15, 0 ;FUTURE_SIGHT
|
||||||
move EFFECT_DEFENSE_DOWN_HIT, 20, FIGHTING, 100, 15, 50 ;ROCK_SMASH
|
move EFFECT_DEFENSE_DOWN_HIT, 20, FIGHTING, 100, 15, 50 ;ROCK_SMASH
|
||||||
move EFFECT_TRAP_TARGET, 15, WATER, 70, 15, 0 ;WHIRLPOOL
|
move EFFECT_WHIRLPOOL, 15, WATER, 70, 15, 0 ;WHIRLPOOL
|
||||||
move EFFECT_BEAT_UP, 10, DARK, 100, 10, 0 ;BEAT_UP
|
move EFFECT_BEAT_UP, 10, DARK, 100, 10, 0 ;BEAT_UP
|
||||||
move EFFECT_FLINCH_HIT, 80, ROCK, 100, 15, 30 ;ROCK_HEAD
|
move EFFECT_FLINCH_HIT, 80, ROCK, 100, 15, 30 ;ROCK_HEAD
|
||||||
move EFFECT_NORMAL_HIT, 140, ROCK, 70, 5, 0 ;ROCK_SLASH
|
move EFFECT_NORMAL_HIT, 140, ROCK, 70, 5, 0 ;ROCK_SLASH
|
||||||
move EFFECT_NORMAL_HIT, 50, BUG, 100, 15, 0 ;CROSS_CUTTER
|
move EFFECT_NORMAL_HIT, 50, BUG, 100, 15, 0 ;CROSS_CUTTER
|
||||||
move EFFECT_SP_ATK_DOWN, 0, NORMAL, 100, 40, 0 ;MEGAPHONE
|
move EFFECT_SP_ATK_DOWN, 0, NORMAL, 100, 40, 0 ;MEGAPHONE
|
||||||
move EFFECT_FREEZE_HIT, 100, ICE, 95, 5, 30 ;MYSTIC_ICE
|
move EFFECT_FREEZE_HIT, 100, ICE, 95, 5, 30 ;MYSTIC_ICE
|
||||||
move EFFECT_FLY, 85, WATER, 85, 5, 0 ; BOUNCE - went back and forth on type (making it modern or keeping it spaceworldy), chose spaceworld to diversify the "fly" move category
|
move EFFECT_BOUNCE, 85, FLYING, 85, 5, 0 ; BOUNCE - with Water Sport now in the game, Bounce's SW97 Water typing is no longer necessary.
|
||||||
move EFFECT_ACCURACY_UP, 85, GRASS, 0, 20, 0 ; BRIGHT_MOSS
|
move EFFECT_ACCURACY_UP, 85, GRASS, 0, 20, 0 ; BRIGHT_MOSS
|
||||||
move EFFECT_COIN_HURL, 1, NORMAL, 100, 20, 0 ; COIN_HURL
|
move EFFECT_COIN_HURL, 1, NORMAL, 100, 20, 0 ; COIN_HURL
|
||||||
move EFFECT_NORMAL_HIT, 85, GROUND, 100, 10, 0 ; UPROOT
|
move EFFECT_NORMAL_HIT, 85, GROUND, 100, 10, 0 ; UPROOT
|
||||||
move EFFECT_MIRROR_COAT, 1, PSYCHIC_TYPE, 100, 10, 0 ; SYNCHRONIZE - effect not implemented
|
move EFFECT_MIRROR_COAT, 1, PSYCHIC_TYPE, 100, 10, 0 ; SYNCHRONIZE - effect not implemented
|
||||||
move EFFECT_ATTACK_UP_HIT, 70, STEEL, 90, 10, 10 ; STRONG_ARM
|
move EFFECT_ATTACK_UP_HIT, 70, STEEL, 90, 10, 10 ; STRONG_ARM
|
||||||
move EFFECT_FLINCH_HIT, 55, FIGHTING, 80, 15, 30 ; UPPERCUT
|
move EFFECT_FLINCH_HIT, 55, FIGHTING, 80, 15, 30 ; UPPERCUT
|
||||||
move EFFECT_NORMAL_HIT, 1, WATER, 1, 15, 0 ; WATER_SPORT - effect not implemented
|
move EFFECT_FLY, 80, WATER, 100, 10, 0 ; WATER_SPORT - Now a Dive clone.
|
||||||
move EFFECT_NORMAL_HIT, 55, FLYING, 95, 10, 0 ; WIND_RIDE
|
move EFFECT_NORMAL_HIT, 55, FLYING, 95, 10, 0 ; WIND_RIDE
|
||||||
move EFFECT_NORMAL_HIT, 80, FAIRY, 100, 10, 0 ; DAZZLING_GLEAM
|
move EFFECT_NORMAL_HIT, 80, FAIRY, 100, 10, 0 ; DAZZLING_GLEAM
|
||||||
move EFFECT_ALWAYS_HIT, 40, FAIRY, 100, 15, 0 ; DISARMING_VOICE
|
move EFFECT_ALWAYS_HIT, 40, FAIRY, 100, 15, 0 ; DISARMING_VOICE
|
||||||
|
|
|
@ -4,6 +4,7 @@ ChrisStateSprites:
|
||||||
db PLAYER_SURF, SPRITE_SURF
|
db PLAYER_SURF, SPRITE_SURF
|
||||||
db PLAYER_SURF_PIKA, SPRITE_SURFING_PIKACHU
|
db PLAYER_SURF_PIKA, SPRITE_SURFING_PIKACHU
|
||||||
db PLAYER_RUN, SPRITE_CHRIS_RUN
|
db PLAYER_RUN, SPRITE_CHRIS_RUN
|
||||||
|
db PLAYER_WATER_SPORT, SPRITE_CHRIS_WATER_SPORT
|
||||||
db -1 ; end
|
db -1 ; end
|
||||||
|
|
||||||
KrisStateSprites:
|
KrisStateSprites:
|
||||||
|
@ -12,6 +13,7 @@ KrisStateSprites:
|
||||||
db PLAYER_SURF, SPRITE_SURF
|
db PLAYER_SURF, SPRITE_SURF
|
||||||
db PLAYER_SURF_PIKA, SPRITE_SURFING_PIKACHU
|
db PLAYER_SURF_PIKA, SPRITE_SURFING_PIKACHU
|
||||||
db PLAYER_RUN, SPRITE_KRIS_RUN
|
db PLAYER_RUN, SPRITE_KRIS_RUN
|
||||||
|
db PLAYER_WATER_SPORT, SPRITE_KRIS_WATER_SPORT
|
||||||
db -1 ; end
|
db -1 ; end
|
||||||
|
|
||||||
EnbyStateSprites:
|
EnbyStateSprites:
|
||||||
|
@ -20,5 +22,6 @@ EnbyStateSprites:
|
||||||
db PLAYER_SURF, SPRITE_SURF
|
db PLAYER_SURF, SPRITE_SURF
|
||||||
db PLAYER_SURF_PIKA, SPRITE_SURFING_PIKACHU
|
db PLAYER_SURF_PIKA, SPRITE_SURFING_PIKACHU
|
||||||
db PLAYER_RUN, SPRITE_TOPAZ_RUN
|
db PLAYER_RUN, SPRITE_TOPAZ_RUN
|
||||||
|
db PLAYER_WATER_SPORT, SPRITE_TOPAZ_WATER_SPORT
|
||||||
db -1 ; end
|
db -1 ; end
|
||||||
|
|
|
@ -150,4 +150,5 @@ OverworldSprites:
|
||||||
overworld_sprite BaldingGuyGFX, 12, STANDING_SPRITE, PAL_OW_BROWN
|
overworld_sprite BaldingGuyGFX, 12, STANDING_SPRITE, PAL_OW_BROWN
|
||||||
overworld_sprite GameboyGirlGFX, 12, STANDING_SPRITE, PAL_OW_RED
|
overworld_sprite GameboyGirlGFX, 12, STANDING_SPRITE, PAL_OW_RED
|
||||||
overworld_sprite OverworldPikachuGFX, 12, STANDING_SPRITE, PAL_OW_BROWN
|
overworld_sprite OverworldPikachuGFX, 12, STANDING_SPRITE, PAL_OW_BROWN
|
||||||
|
overworld_sprite WaterSportSpriteGFX, 12, WALKING_SPRITE, PAL_OW_BLUE
|
||||||
assert_table_length NUM_OVERWORLD_SPRITES
|
assert_table_length NUM_OVERWORLD_SPRITES
|
||||||
|
|
|
@ -1502,8 +1502,6 @@ _OakText3::
|
||||||
text_promptbutton
|
text_promptbutton
|
||||||
text_end
|
text_end
|
||||||
|
|
||||||
text_end ; unreferenced
|
|
||||||
|
|
||||||
_OakText4::
|
_OakText4::
|
||||||
text "People and #MON"
|
text "People and #MON"
|
||||||
line "live together by"
|
line "live together by"
|
||||||
|
@ -1528,3 +1526,62 @@ _OakText5::
|
||||||
para "That's why I study"
|
para "That's why I study"
|
||||||
line "#MON every day."
|
line "#MON every day."
|
||||||
prompt
|
prompt
|
||||||
|
|
||||||
|
_AskStrongArmText::
|
||||||
|
text "The wall is very"
|
||||||
|
line "rocky…"
|
||||||
|
|
||||||
|
para "Want to use"
|
||||||
|
line "STRONG ARM?"
|
||||||
|
done
|
||||||
|
|
||||||
|
_UsedStrongArmText::
|
||||||
|
text_ram wStringBuffer2
|
||||||
|
text " used"
|
||||||
|
line "STRONG ARM!"
|
||||||
|
prompt
|
||||||
|
|
||||||
|
_CantStrongArmText::
|
||||||
|
text "The wall is very"
|
||||||
|
line "rocky…"
|
||||||
|
|
||||||
|
para "Can a #MON's"
|
||||||
|
line "move scale it?"
|
||||||
|
done
|
||||||
|
|
||||||
|
_CantWaterSportText::
|
||||||
|
text "Can't use"
|
||||||
|
line "WATER SPORT"
|
||||||
|
cont "here!"
|
||||||
|
prompt
|
||||||
|
|
||||||
|
_CanWaterSportText::
|
||||||
|
text "The sea is deep."
|
||||||
|
para "A #MON can"
|
||||||
|
line "dive here."
|
||||||
|
done
|
||||||
|
|
||||||
|
_AskWaterSportDownText::
|
||||||
|
text "The sea is deep."
|
||||||
|
line "Want to use"
|
||||||
|
cont "WATER SPORT?"
|
||||||
|
done
|
||||||
|
|
||||||
|
_AskWaterSportUpText::
|
||||||
|
text "Light is filter-"
|
||||||
|
line "ing from above."
|
||||||
|
|
||||||
|
para "Want to use"
|
||||||
|
line "WATER SPORT?"
|
||||||
|
done
|
||||||
|
|
||||||
|
_UsedWaterSportText::
|
||||||
|
text_from_ram wStringBuffer2
|
||||||
|
text " used"
|
||||||
|
line "WATER SPORT!"
|
||||||
|
done
|
||||||
|
|
||||||
|
HidUnderwaterText::
|
||||||
|
text_start
|
||||||
|
line "hid underwater!"
|
||||||
|
prompt
|
||||||
|
|
|
@ -89,3 +89,5 @@
|
||||||
tilecoll FLOOR, WALL, FLOOR, WARP_CARPET_DOWN ; 58
|
tilecoll FLOOR, WALL, FLOOR, WARP_CARPET_DOWN ; 58
|
||||||
tilecoll FLOOR, SWITCH, FLOOR, FLOOR ; 59
|
tilecoll FLOOR, SWITCH, FLOOR, FLOOR ; 59
|
||||||
tilecoll WALL, FLOOR, FLOOR, WARP_CARPET_DOWN ; 5a
|
tilecoll WALL, FLOOR, FLOOR, WARP_CARPET_DOWN ; 5a
|
||||||
|
tilecoll FLOOR, FLOOR, ROCKY_WALL, WALL ; 5b
|
||||||
|
tilecoll FLOOR, FLOOR, WALL, ROCKY_WALL ; 5c
|
||||||
|
|
|
@ -62,3 +62,5 @@
|
||||||
tilecoll WATER, WATER, WATER, WATER ; 3d
|
tilecoll WATER, WATER, WATER, WATER ; 3d
|
||||||
tilecoll WATER, WATER, WATER, WATER ; 3e
|
tilecoll WATER, WATER, WATER, WATER ; 3e
|
||||||
tilecoll FLOOR, FLOOR, PIT, FLOOR ; 3f
|
tilecoll FLOOR, FLOOR, PIT, FLOOR ; 3f
|
||||||
|
tilecoll FLOOR, FLOOR, ROCKY_WALL, WALL ; 40
|
||||||
|
tilecoll FLOOR, FLOOR, WALL, ROCKY_WALL ; 41
|
||||||
|
|
|
@ -3,4 +3,4 @@
|
||||||
&&&67&&67&&&&$$$$*+:;$$$$"#23
()89
!01
$$&&&&
@@@@@@@@@@@@@@@@%&&&%&&&%&&&%&&&&&&&&&&&&&&&&&&&&&&'&&&'&&&'&&&'67&&67&&$$%&&'%'
&&&&&&&&
|
&&&67&&67&&&&$$$$*+:;$$$$"#23
()89
!01
$$&&&&
@@@@@@@@@@@@@@@@%&&&%&&&%&&&%&&&&&&&&&&&&&&&&&&&&&&'&&&'&&&'&&&'67&&67&&$$%&&'%'
&&&&&&&&
|
||||||
&
|
&
|
||||||
67'67&'&&&&&&&&&&&&%&&&&&&&&&&'&&&
|
67'67&'&&&&&&&&&&&&%&&&&&&&&&&'&&&
|
||||||
&&&
|
&&&AB&&QR&&&&AB&&QR
|
|
@ -187,3 +187,4 @@
|
||||||
tilecoll WALL, WALL, WALL, WATER ; ba
|
tilecoll WALL, WALL, WALL, WATER ; ba
|
||||||
tilecoll WALL, WALL, WATER, WALL ; bb
|
tilecoll WALL, WALL, WATER, WALL ; bb
|
||||||
tilecoll WALL, HOP_DOWN_LEFT, WALL, WALL ; bc
|
tilecoll WALL, HOP_DOWN_LEFT, WALL, WALL ; bc
|
||||||
|
tilecoll FLOOR, FLOOR, ROCKY_WALL, WALL ; bd
|
||||||
|
|
|
@ -387,6 +387,8 @@ AI_Smart_EffectHandlers:
|
||||||
dbw EFFECT_SOLARBEAM, AI_Smart_Solarbeam
|
dbw EFFECT_SOLARBEAM, AI_Smart_Solarbeam
|
||||||
dbw EFFECT_THUNDER, AI_Smart_Thunder
|
dbw EFFECT_THUNDER, AI_Smart_Thunder
|
||||||
dbw EFFECT_FLY, AI_Smart_Fly
|
dbw EFFECT_FLY, AI_Smart_Fly
|
||||||
|
dbw EFFECT_SURF, AI_Smart_Surf
|
||||||
|
dbw EFFECT_WHIRLPOOL, AI_Smart_Whirlpool
|
||||||
db -1 ; end
|
db -1 ; end
|
||||||
|
|
||||||
AI_Smart_Sleep:
|
AI_Smart_Sleep:
|
||||||
|
@ -1137,15 +1139,19 @@ AI_Smart_SpDefenseUp2:
|
||||||
ret
|
ret
|
||||||
|
|
||||||
AI_Smart_Fly:
|
AI_Smart_Fly:
|
||||||
; Fly, Dig
|
; Fly, Dig, Dive, Bounce
|
||||||
|
|
||||||
; Greatly encourage this move if the player is
|
; Greatly encourage this move if the player is
|
||||||
; flying or underground, and slower than the enemy.
|
; flying or underground, and slower than the enemy.
|
||||||
|
|
||||||
ld a, [wPlayerSubStatus3]
|
ld a, [wPlayerSubStatus3]
|
||||||
and 1 << SUBSTATUS_FLYING | 1 << SUBSTATUS_UNDERGROUND
|
and 1 << SUBSTATUS_FLYING | 1 << SUBSTATUS_UNDERGROUND
|
||||||
|
jr nz, .player_hidden
|
||||||
|
ld a, [wPlayerSubStatus4]
|
||||||
|
and 1 << SUBSTATUS_UNDERWATER
|
||||||
ret z
|
ret z
|
||||||
|
|
||||||
|
.player_hidden
|
||||||
call AICompareSpeed
|
call AICompareSpeed
|
||||||
ret nc
|
ret nc
|
||||||
|
|
||||||
|
@ -1637,10 +1643,13 @@ AI_Smart_PriorityHit:
|
||||||
call AICompareSpeed
|
call AICompareSpeed
|
||||||
ret c
|
ret c
|
||||||
|
|
||||||
; Dismiss this move if the player is flying or underground.
|
; Dismiss this move if the player is flying, underwater, or underground.
|
||||||
ld a, [wPlayerSubStatus3]
|
ld a, [wPlayerSubStatus3]
|
||||||
and 1 << SUBSTATUS_FLYING | 1 << SUBSTATUS_UNDERGROUND
|
and 1 << SUBSTATUS_FLYING | 1 << SUBSTATUS_UNDERGROUND
|
||||||
jp nz, AIDiscourageMove
|
jp nz, AIDiscourageMove
|
||||||
|
ld a, [wPlayerSubStatus4]
|
||||||
|
and 1 << SUBSTATUS_UNDERWATER
|
||||||
|
jp nz, AIDiscourageMove
|
||||||
|
|
||||||
; Greatly encourage this move if it will KO the player.
|
; Greatly encourage this move if it will KO the player.
|
||||||
ld a, 1
|
ld a, 1
|
||||||
|
@ -1664,6 +1673,30 @@ AI_Smart_PriorityHit:
|
||||||
dec [hl]
|
dec [hl]
|
||||||
ret
|
ret
|
||||||
|
|
||||||
|
AI_Smart_Surf:
|
||||||
|
AI_Smart_Whirlpool:
|
||||||
|
; Greatly encourage this move if the player is underwater and the enemy is faster.
|
||||||
|
ld a, [wLastPlayerCounterMove]
|
||||||
|
cp DIVE
|
||||||
|
ret nz
|
||||||
|
ld a, [wPlayerSubStatus4]
|
||||||
|
bit SUBSTATUS_UNDERWATER, a
|
||||||
|
jr z, .could_dive
|
||||||
|
call AICompareSpeed
|
||||||
|
ret nc
|
||||||
|
dec [hl]
|
||||||
|
dec [hl]
|
||||||
|
ret
|
||||||
|
.could_dive
|
||||||
|
; Try to predict if the player will use Dive this turn.
|
||||||
|
; 50% chance to encourage this move if the enemy is slower than the player.
|
||||||
|
call AICompareSpeed
|
||||||
|
ret c
|
||||||
|
call AI_50_50
|
||||||
|
ret c
|
||||||
|
dec [hl]
|
||||||
|
ret
|
||||||
|
|
||||||
AI_Smart_Thief:
|
AI_Smart_Thief:
|
||||||
; Don't use Thief unless it's the only move available.
|
; Don't use Thief unless it's the only move available.
|
||||||
|
|
||||||
|
@ -2633,15 +2666,19 @@ AI_Smart_Gust:
|
||||||
|
|
||||||
AI_Smart_FutureSight:
|
AI_Smart_FutureSight:
|
||||||
; Greatly encourage this move if the player is
|
; Greatly encourage this move if the player is
|
||||||
; flying or underground, and slower than the enemy.
|
; flying, underwater, or underground, and slower than the enemy.
|
||||||
|
|
||||||
call AICompareSpeed
|
call AICompareSpeed
|
||||||
ret nc
|
ret nc
|
||||||
|
|
||||||
ld a, [wPlayerSubStatus3]
|
ld a, [wPlayerSubStatus3]
|
||||||
and 1 << SUBSTATUS_FLYING | 1 << SUBSTATUS_UNDERGROUND
|
and 1 << SUBSTATUS_FLYING | 1 << SUBSTATUS_UNDERGROUND
|
||||||
|
jr nz, .player_hidden
|
||||||
|
ld a, [wPlayerSubStatus4]
|
||||||
|
and 1 << SUBSTATUS_UNDERWATER
|
||||||
ret z
|
ret z
|
||||||
|
|
||||||
|
.player_hidden
|
||||||
dec [hl]
|
dec [hl]
|
||||||
dec [hl]
|
dec [hl]
|
||||||
ret
|
ret
|
||||||
|
|
|
@ -1119,7 +1119,15 @@ ResidualDamage:
|
||||||
ld a, BATTLE_VARS_SUBSTATUS3_OPP
|
ld a, BATTLE_VARS_SUBSTATUS3_OPP
|
||||||
call GetBattleVar
|
call GetBattleVar
|
||||||
and 1 << SUBSTATUS_FLYING | 1 << SUBSTATUS_UNDERGROUND
|
and 1 << SUBSTATUS_FLYING | 1 << SUBSTATUS_UNDERGROUND
|
||||||
|
jr nz, .not_flying_or_underground
|
||||||
|
call Call_PlayBattleAnim_OnlyIfVisible
|
||||||
|
jr .called
|
||||||
|
.not_flying_or_underground
|
||||||
|
ld a, BATTLE_VARS_SUBSTATUS4_OPP
|
||||||
|
call GetBattleVar
|
||||||
|
and 1 << SUBSTATUS_UNDERWATER
|
||||||
call z, Call_PlayBattleAnim_OnlyIfVisible
|
call z, Call_PlayBattleAnim_OnlyIfVisible
|
||||||
|
.called
|
||||||
call SwitchTurnCore
|
call SwitchTurnCore
|
||||||
|
|
||||||
call GetEighthMaxHP
|
call GetEighthMaxHP
|
||||||
|
@ -1303,6 +1311,11 @@ HandleWrap:
|
||||||
and 1 << SUBSTATUS_FLYING | 1 << SUBSTATUS_UNDERGROUND
|
and 1 << SUBSTATUS_FLYING | 1 << SUBSTATUS_UNDERGROUND
|
||||||
jr nz, .skip_anim
|
jr nz, .skip_anim
|
||||||
|
|
||||||
|
ld a, BATTLE_VARS_SUBSTATUS4
|
||||||
|
call GetBattleVar
|
||||||
|
and 1 << SUBSTATUS_UNDERWATER
|
||||||
|
jr nz, .skip_anim
|
||||||
|
|
||||||
call SwitchTurnCore
|
call SwitchTurnCore
|
||||||
xor a
|
xor a
|
||||||
ld [wNumHits], a
|
ld [wNumHits], a
|
||||||
|
@ -7095,6 +7108,11 @@ Call_PlayBattleAnim_OnlyIfVisible:
|
||||||
and 1 << SUBSTATUS_FLYING | 1 << SUBSTATUS_UNDERGROUND
|
and 1 << SUBSTATUS_FLYING | 1 << SUBSTATUS_UNDERGROUND
|
||||||
ret nz
|
ret nz
|
||||||
|
|
||||||
|
ld a, BATTLE_VARS_SUBSTATUS4
|
||||||
|
call GetBattleVar
|
||||||
|
and 1 << SUBSTATUS_UNDERWATER
|
||||||
|
ret nz
|
||||||
|
|
||||||
Call_PlayBattleAnim:
|
Call_PlayBattleAnim:
|
||||||
ld a, e
|
ld a, e
|
||||||
ld [wFXAnimID], a
|
ld [wFXAnimID], a
|
||||||
|
|
|
@ -1,3 +1,9 @@
|
||||||
|
; Heavily edited when adding Water Sport's effect.
|
||||||
|
; If errors occur (especially involving Substitute), check https://github.com/Rangi42/pokecrystal/commit/c21561ea717feef9b2eb3785c2ea112cd0d19ba0#diff-88dbff1eb3920f69b17a3d5f613643e1a41096514706bc09f449e4aa637f20e4R5647
|
||||||
|
|
||||||
|
; There is a high chance you will run out of memory and I am not sure how this is resolved.
|
||||||
|
; I imagine bankswitches will be necessary.
|
||||||
|
|
||||||
DoPlayerTurn:
|
DoPlayerTurn:
|
||||||
call SetPlayerTurn
|
call SetPlayerTurn
|
||||||
|
|
||||||
|
@ -360,11 +366,16 @@ CantMove:
|
||||||
|
|
||||||
res SUBSTATUS_UNDERGROUND, [hl]
|
res SUBSTATUS_UNDERGROUND, [hl]
|
||||||
res SUBSTATUS_FLYING, [hl]
|
res SUBSTATUS_FLYING, [hl]
|
||||||
|
ld a, BATTLE_VARS_SUBSTATUS4
|
||||||
|
call GetBattleVarAddr
|
||||||
|
res SUBSTATUS_UNDERWATER, [hl]
|
||||||
jp AppearUserRaiseSub
|
jp AppearUserRaiseSub
|
||||||
|
|
||||||
.fly_dig_moves
|
.fly_dig_moves
|
||||||
dw FLY
|
dw FLY
|
||||||
dw DIG
|
dw DIG
|
||||||
|
dw BOUNCE
|
||||||
|
dw WATER_SPORT
|
||||||
dw -1
|
dw -1
|
||||||
|
|
||||||
OpponentCantMove:
|
OpponentCantMove:
|
||||||
|
@ -529,12 +540,17 @@ CheckEnemyTurn:
|
||||||
xor a
|
xor a
|
||||||
ld [wNumHits], a
|
ld [wNumHits], a
|
||||||
|
|
||||||
; Flicker the monster pic unless flying or underground.
|
; Flicker the monster pic unless flying, underwater, or underground.
|
||||||
ld de, ANIM_HIT_CONFUSION
|
ld de, ANIM_HIT_CONFUSION
|
||||||
ld a, BATTLE_VARS_SUBSTATUS3_OPP
|
ld a, BATTLE_VARS_SUBSTATUS3_OPP
|
||||||
call GetBattleVar
|
call GetBattleVar
|
||||||
and 1 << SUBSTATUS_FLYING | 1 << SUBSTATUS_UNDERGROUND
|
and 1 << SUBSTATUS_FLYING | 1 << SUBSTATUS_UNDERGROUND
|
||||||
|
jr nz, .no_flicker
|
||||||
|
ld a, BATTLE_VARS_SUBSTATUS4_OPP
|
||||||
|
call GetBattleVar
|
||||||
|
and 1 << SUBSTATUS_UNDERWATER
|
||||||
call z, PlayFXAnimID
|
call z, PlayFXAnimID
|
||||||
|
.no_flicker
|
||||||
|
|
||||||
ld c, TRUE
|
ld c, TRUE
|
||||||
call DoEnemyDamage
|
call DoEnemyDamage
|
||||||
|
@ -632,12 +648,17 @@ HitConfusion:
|
||||||
xor a
|
xor a
|
||||||
ld [wNumHits], a
|
ld [wNumHits], a
|
||||||
|
|
||||||
; Flicker the monster pic unless flying or underground.
|
; Flicker the monster pic unless flying, underwater, or underground.
|
||||||
ld de, ANIM_HIT_CONFUSION
|
ld de, ANIM_HIT_CONFUSION
|
||||||
ld a, BATTLE_VARS_SUBSTATUS3_OPP
|
ld a, BATTLE_VARS_SUBSTATUS3_OPP
|
||||||
call GetBattleVar
|
call GetBattleVar
|
||||||
and 1 << SUBSTATUS_FLYING | 1 << SUBSTATUS_UNDERGROUND
|
and 1 << SUBSTATUS_FLYING | 1 << SUBSTATUS_UNDERGROUND
|
||||||
|
jr nz, .no_flicker
|
||||||
|
ld a, BATTLE_VARS_SUBSTATUS4_OPP
|
||||||
|
call GetBattleVar
|
||||||
|
and 1 << SUBSTATUS_UNDERWATER
|
||||||
call z, PlayFXAnimID
|
call z, PlayFXAnimID
|
||||||
|
.no_flicker
|
||||||
|
|
||||||
ld hl, UpdatePlayerHUD
|
ld hl, UpdatePlayerHUD
|
||||||
call CallBattleCore
|
call CallBattleCore
|
||||||
|
@ -1746,14 +1767,26 @@ BattleCommand_CheckHit:
|
||||||
ret
|
ret
|
||||||
|
|
||||||
.FlyDigMoves:
|
.FlyDigMoves:
|
||||||
; Check for moves that can hit underground/flying opponents.
|
; Check for moves that can hit underground/flying opponents. And divers.
|
||||||
; Return z if the current move can hit the opponent.
|
; Return z if the current move can hit the opponent.
|
||||||
|
|
||||||
ld a, BATTLE_VARS_SUBSTATUS3_OPP
|
ld a, BATTLE_VARS_SUBSTATUS3_OPP
|
||||||
call GetBattleVar
|
call GetBattleVar
|
||||||
and 1 << SUBSTATUS_FLYING | 1 << SUBSTATUS_UNDERGROUND
|
and 1 << SUBSTATUS_FLYING | 1 << SUBSTATUS_UNDERGROUND
|
||||||
|
jr nz, .flying_or_underground
|
||||||
|
ld a, BATTLE_VARS_SUBSTATUS4_OPP
|
||||||
|
call GetBattleVar
|
||||||
|
and 1 << SUBSTATUS_UNDERWATER
|
||||||
ret z
|
ret z
|
||||||
|
|
||||||
|
ld a, BATTLE_VARS_MOVE_ANIM
|
||||||
|
call GetBattleVar
|
||||||
|
cp SURF
|
||||||
|
ret z
|
||||||
|
cp WHIRLPOOL
|
||||||
|
ret
|
||||||
|
.flying_or_underground
|
||||||
|
|
||||||
bit SUBSTATUS_FLYING, a
|
bit SUBSTATUS_FLYING, a
|
||||||
ld hl, .FlyMoves
|
ld hl, .FlyMoves
|
||||||
jr z, .check_move_in_list
|
jr z, .check_move_in_list
|
||||||
|
@ -2032,6 +2065,8 @@ BattleCommand_MoveAnimNoSub:
|
||||||
.fly_dig_moves
|
.fly_dig_moves
|
||||||
dw FLY
|
dw FLY
|
||||||
dw DIG
|
dw DIG
|
||||||
|
dw BOUNCE
|
||||||
|
dw WATER_SPORT
|
||||||
dw -1
|
dw -1
|
||||||
|
|
||||||
.alternate_anim
|
.alternate_anim
|
||||||
|
@ -2145,12 +2180,17 @@ BattleCommand_FailureText:
|
||||||
call GetBattleVarAddr
|
call GetBattleVarAddr
|
||||||
res SUBSTATUS_UNDERGROUND, [hl]
|
res SUBSTATUS_UNDERGROUND, [hl]
|
||||||
res SUBSTATUS_FLYING, [hl]
|
res SUBSTATUS_FLYING, [hl]
|
||||||
|
ld a, BATTLE_VARS_SUBSTATUS4
|
||||||
|
call GetBattleVarAddr
|
||||||
|
res SUBSTATUS_UNDERWATER, [hl]
|
||||||
call AppearUserRaiseSub
|
call AppearUserRaiseSub
|
||||||
jp EndMoveEffect
|
jp EndMoveEffect
|
||||||
|
|
||||||
.fly_dig_moves
|
.fly_dig_moves
|
||||||
dw FLY
|
dw FLY
|
||||||
dw DIG
|
dw DIG
|
||||||
|
dw WATER_SPORT
|
||||||
|
dw BOUNCE
|
||||||
dw -1
|
dw -1
|
||||||
|
|
||||||
BattleCommand_ApplyDamage:
|
BattleCommand_ApplyDamage:
|
||||||
|
@ -3421,6 +3461,11 @@ FarPlayBattleAnimation:
|
||||||
and 1 << SUBSTATUS_FLYING | 1 << SUBSTATUS_UNDERGROUND
|
and 1 << SUBSTATUS_FLYING | 1 << SUBSTATUS_UNDERGROUND
|
||||||
ret nz
|
ret nz
|
||||||
|
|
||||||
|
ld a, BATTLE_VARS_SUBSTATUS4
|
||||||
|
call GetBattleVar
|
||||||
|
and 1 << SUBSTATUS_UNDERWATER
|
||||||
|
ret nz
|
||||||
|
|
||||||
; fallthrough
|
; fallthrough
|
||||||
|
|
||||||
PlayFXAnimID:
|
PlayFXAnimID:
|
||||||
|
@ -3606,7 +3651,12 @@ DoSubstituteDamage:
|
||||||
ld a, BATTLE_VARS_SUBSTATUS3
|
ld a, BATTLE_VARS_SUBSTATUS3
|
||||||
call GetBattleVar
|
call GetBattleVar
|
||||||
and 1 << SUBSTATUS_FLYING | 1 << SUBSTATUS_UNDERGROUND
|
and 1 << SUBSTATUS_FLYING | 1 << SUBSTATUS_UNDERGROUND
|
||||||
|
jr nz, .dont_lower_sub
|
||||||
|
ld a, BATTLE_VARS_SUBSTATUS4
|
||||||
|
call GetBattleVar
|
||||||
|
and 1 << SUBSTATUS_UNDERWATER
|
||||||
call z, AppearUserLowerSub
|
call z, AppearUserLowerSub
|
||||||
|
.dont_lower_sub
|
||||||
call BattleCommand_SwitchTurn
|
call BattleCommand_SwitchTurn
|
||||||
|
|
||||||
ld a, BATTLE_VARS_MOVE_EFFECT
|
ld a, BATTLE_VARS_MOVE_EFFECT
|
||||||
|
@ -5545,6 +5595,9 @@ BattleCommand_CheckCharge:
|
||||||
res SUBSTATUS_CHARGED, [hl]
|
res SUBSTATUS_CHARGED, [hl]
|
||||||
res SUBSTATUS_UNDERGROUND, [hl]
|
res SUBSTATUS_UNDERGROUND, [hl]
|
||||||
res SUBSTATUS_FLYING, [hl]
|
res SUBSTATUS_FLYING, [hl]
|
||||||
|
ld a, BATTLE_VARS_SUBSTATUS4
|
||||||
|
call GetBattleVarAddr
|
||||||
|
res SUBSTATUS_UNDERWATER, [hl]
|
||||||
ld b, charge_command
|
ld b, charge_command
|
||||||
jp SkipToBattleCommand
|
jp SkipToBattleCommand
|
||||||
|
|
||||||
|
@ -5578,19 +5631,13 @@ BattleCommand_Charge:
|
||||||
call LoadMoveAnim
|
call LoadMoveAnim
|
||||||
ld a, BATTLE_VARS_MOVE_ANIM
|
ld a, BATTLE_VARS_MOVE_ANIM
|
||||||
call GetBattleVar
|
call GetBattleVar
|
||||||
ld h, a
|
cp FLY
|
||||||
ld bc, FLY
|
|
||||||
call CompareMove
|
|
||||||
ld a, 1 << SUBSTATUS_FLYING
|
|
||||||
jr z, .got_move_type
|
jr z, .got_move_type
|
||||||
if HIGH(FLY) != HIGH(DIG)
|
cp DIG
|
||||||
ld bc, DIG
|
jr z, .got_move_type
|
||||||
else
|
cp BOUNCE
|
||||||
ld c, LOW(DIG)
|
jr z, .got_move_type
|
||||||
endc
|
cp WATER_SPORT
|
||||||
ld a, h
|
|
||||||
call CompareMove
|
|
||||||
ld a, 1 << SUBSTATUS_UNDERGROUND
|
|
||||||
jr z, .got_move_type
|
jr z, .got_move_type
|
||||||
call BattleCommand_RaiseSub
|
call BattleCommand_RaiseSub
|
||||||
xor a
|
xor a
|
||||||
|
@ -5659,6 +5706,8 @@ BattleCommand_Charge:
|
||||||
dw SKY_ATTACK, .BattleGlowingText
|
dw SKY_ATTACK, .BattleGlowingText
|
||||||
dw FLY, .BattleFlewText
|
dw FLY, .BattleFlewText
|
||||||
dw DIG, .BattleDugText
|
dw DIG, .BattleDugText
|
||||||
|
dw BOUNCE, .BattleFlewText
|
||||||
|
dw WATER_SPORT, .BattleWaterSportText
|
||||||
dw -1
|
dw -1
|
||||||
|
|
||||||
.BattleMadeWhirlwindText:
|
.BattleMadeWhirlwindText:
|
||||||
|
@ -5685,9 +5734,10 @@ BattleCommand_Charge:
|
||||||
text_far _BattleDugText
|
text_far _BattleDugText
|
||||||
text_end
|
text_end
|
||||||
|
|
||||||
BattleCommand_Unused3C:
|
.BattleWaterSportText:
|
||||||
; effect0x3c
|
; 'hid underwater!'
|
||||||
ret
|
text_jump HidUnderwaterText
|
||||||
|
db "@"
|
||||||
|
|
||||||
BattleCommand_TrapTarget:
|
BattleCommand_TrapTarget:
|
||||||
ld a, [wAttackMissed]
|
ld a, [wAttackMissed]
|
||||||
|
@ -6440,10 +6490,6 @@ INCLUDE "engine/battle/move_effects/sandstorm.asm"
|
||||||
|
|
||||||
INCLUDE "engine/battle/move_effects/rollout.asm"
|
INCLUDE "engine/battle/move_effects/rollout.asm"
|
||||||
|
|
||||||
BattleCommand_Unused5D:
|
|
||||||
; effect0x5d
|
|
||||||
ret
|
|
||||||
|
|
||||||
INCLUDE "engine/battle/move_effects/fury_cutter.asm"
|
INCLUDE "engine/battle/move_effects/fury_cutter.asm"
|
||||||
|
|
||||||
INCLUDE "engine/battle/move_effects/attract.asm"
|
INCLUDE "engine/battle/move_effects/attract.asm"
|
||||||
|
|
|
@ -2916,11 +2916,17 @@ BGEffect_CheckFlyDigStatus:
|
||||||
jr nz, .player
|
jr nz, .player
|
||||||
ld a, [wEnemySubStatus3] ; EnemySubStatus3
|
ld a, [wEnemySubStatus3] ; EnemySubStatus3
|
||||||
and 1 << SUBSTATUS_FLYING | 1 << SUBSTATUS_UNDERGROUND
|
and 1 << SUBSTATUS_FLYING | 1 << SUBSTATUS_UNDERGROUND
|
||||||
|
ret nz
|
||||||
|
ld a, [wEnemySubStatus4]
|
||||||
|
and 1 << SUBSTATUS_UNDERWATER
|
||||||
ret
|
ret
|
||||||
|
|
||||||
.player
|
.player
|
||||||
ld a, [wPlayerSubStatus3] ; PlayerSubStatus3
|
ld a, [wPlayerSubStatus3] ; PlayerSubStatus3
|
||||||
and 1 << SUBSTATUS_FLYING | 1 << SUBSTATUS_UNDERGROUND
|
and 1 << SUBSTATUS_FLYING | 1 << SUBSTATUS_UNDERGROUND
|
||||||
|
ret nz
|
||||||
|
ld a, [wPlayerSubStatus4]
|
||||||
|
and 1 << SUBSTATUS_UNDERWATER
|
||||||
ret
|
ret
|
||||||
|
|
||||||
BattleBGEffects_CheckSGB:
|
BattleBGEffects_CheckSGB:
|
||||||
|
|
|
@ -564,6 +564,9 @@ FlyFunction:
|
||||||
ld de, ENGINE_STORMBADGE
|
ld de, ENGINE_STORMBADGE
|
||||||
call CheckBadge
|
call CheckBadge
|
||||||
jr c, .nostormbadge
|
jr c, .nostormbadge
|
||||||
|
ld a, [wMapTileset]
|
||||||
|
cp TILESET_UNDERWATER
|
||||||
|
jr z, .indoors
|
||||||
call GetMapEnvironment
|
call GetMapEnvironment
|
||||||
call CheckOutdoorMap
|
call CheckOutdoorMap
|
||||||
jr z, .outdoors
|
jr z, .outdoors
|
||||||
|
@ -972,12 +975,6 @@ StrengthFunction:
|
||||||
jr c, .Failed
|
jr c, .Failed
|
||||||
jr .UseStrength
|
jr .UseStrength
|
||||||
|
|
||||||
.AlreadyUsingStrength: ; unreferenced
|
|
||||||
ld hl, .AlreadyUsingStrengthText
|
|
||||||
call MenuTextboxBackup
|
|
||||||
ld a, $80
|
|
||||||
ret
|
|
||||||
|
|
||||||
.AlreadyUsingStrengthText:
|
.AlreadyUsingStrengthText:
|
||||||
text_far _AlreadyUsingStrengthText
|
text_far _AlreadyUsingStrengthText
|
||||||
text_end
|
text_end
|
||||||
|
@ -1542,6 +1539,8 @@ FishFunction:
|
||||||
jr z, .fail
|
jr z, .fail
|
||||||
cp PLAYER_SURF_PIKA
|
cp PLAYER_SURF_PIKA
|
||||||
jr z, .fail
|
jr z, .fail
|
||||||
|
cp PLAYER_WATER_SPORT
|
||||||
|
jr z, .fail
|
||||||
call GetFacingTileCoord
|
call GetFacingTileCoord
|
||||||
call GetTileCollision
|
call GetTileCollision
|
||||||
cp WATER_TILE
|
cp WATER_TILE
|
||||||
|
@ -1906,3 +1905,309 @@ CantCutScript:
|
||||||
CanCutText:
|
CanCutText:
|
||||||
text_far _CanCutText
|
text_far _CanCutText
|
||||||
text_end
|
text_end
|
||||||
|
|
||||||
|
; Strong Arm is currently just Rock Climb. It's progressgated to after the Earth Badge, just as Rock Climb was in HGSS.
|
||||||
|
; This is a fine reward for beating Kanto, so I think it's ok to be here.
|
||||||
|
; It implies Rock Climb will be given in Oak's Lab.
|
||||||
|
|
||||||
|
; Eventually, this will also contain checks that jump to Strength and Rock Smash.
|
||||||
|
StrongArmFunction:
|
||||||
|
call FieldMoveJumptableReset
|
||||||
|
.loop
|
||||||
|
ld hl, .jumptable
|
||||||
|
call FieldMoveJumptable
|
||||||
|
jr nc, .loop
|
||||||
|
and $7f
|
||||||
|
ld [wFieldMoveSucceeded], a
|
||||||
|
ret
|
||||||
|
|
||||||
|
.jumptable:
|
||||||
|
dw .TryStrongArm
|
||||||
|
dw .DoStrongArm
|
||||||
|
dw .FailStrongArm
|
||||||
|
|
||||||
|
.TryStrongArm:
|
||||||
|
ld de, ENGINE_EARTHBADGE
|
||||||
|
farcall CheckBadge
|
||||||
|
jr c, .noearthbadge
|
||||||
|
call TryStrongArmMenu
|
||||||
|
jr c, .failed
|
||||||
|
ld a, $1
|
||||||
|
ret
|
||||||
|
|
||||||
|
.noearthbadge
|
||||||
|
ld a, $80
|
||||||
|
ret
|
||||||
|
|
||||||
|
.failed
|
||||||
|
ld a, $2
|
||||||
|
ret
|
||||||
|
|
||||||
|
.DoStrongArm:
|
||||||
|
ld hl, StrongArmFromMenuScript
|
||||||
|
call QueueScript
|
||||||
|
ld a, $81
|
||||||
|
ret
|
||||||
|
|
||||||
|
.FailStrongArm:
|
||||||
|
call FieldMoveFailed
|
||||||
|
ld a, $80
|
||||||
|
ret
|
||||||
|
|
||||||
|
TryStrongArmMenu:
|
||||||
|
call GetFacingTileCoord
|
||||||
|
ld c, a
|
||||||
|
push de
|
||||||
|
call CheckRockyWallTile
|
||||||
|
pop de
|
||||||
|
jr nz, .failed
|
||||||
|
xor a
|
||||||
|
ret
|
||||||
|
|
||||||
|
.failed
|
||||||
|
scf
|
||||||
|
ret
|
||||||
|
|
||||||
|
; You land here when you've successfully checked a wall.
|
||||||
|
TryStrongArmOW::
|
||||||
|
; First, check if you have the Earth Badge.
|
||||||
|
; You will, because you get the move afterwards, it just covers trading.
|
||||||
|
ld de, ENGINE_EARTHBADGE
|
||||||
|
call CheckEngineFlag
|
||||||
|
jr c, .cant_climb
|
||||||
|
|
||||||
|
; Now check if Strong Arm is in the party. This takes longer, thus the above going first.
|
||||||
|
ld d, STRONG_ARM
|
||||||
|
call CheckPartyMove
|
||||||
|
jr c, .cant_climb
|
||||||
|
|
||||||
|
ld a, BANK(AskStrongArmScript)
|
||||||
|
ld hl, AskStrongArmScript
|
||||||
|
call CallScript
|
||||||
|
scf
|
||||||
|
ret
|
||||||
|
|
||||||
|
.cant_climb
|
||||||
|
ld a, BANK(CantStrongArmScript)
|
||||||
|
ld hl, CantStrongArmScript
|
||||||
|
call CallScript
|
||||||
|
scf
|
||||||
|
ret
|
||||||
|
|
||||||
|
AskStrongArmScript:
|
||||||
|
opentext
|
||||||
|
writetext AskStrongArmText
|
||||||
|
yesorno
|
||||||
|
iftrue UsedStrongArmScript
|
||||||
|
closetext
|
||||||
|
end
|
||||||
|
|
||||||
|
CantStrongArmScript:
|
||||||
|
jumptext CantStrongArmText
|
||||||
|
|
||||||
|
StrongArmFromMenuScript:
|
||||||
|
reloadmappart
|
||||||
|
special UpdateTimePals
|
||||||
|
|
||||||
|
UsedStrongArmScript:
|
||||||
|
callasm GetPartyNickname ; BUG: When used in the OW, the Pokemon is picked wrong. Tested with Machamp and Furret in party, and Furret would always be picked, regardless of party position. Seems to be finding the wrong Pokemon in OW scenarios specifically. wStringBuffer2 is failing to update.
|
||||||
|
writetext UsedStrongArmText
|
||||||
|
closetext
|
||||||
|
loadvar VAR_MOVEMENT, PLAYER_NORMAL
|
||||||
|
special UpdatePlayerSprite
|
||||||
|
waitsfx
|
||||||
|
playsound SFX_STRENGTH
|
||||||
|
readvar VAR_FACING
|
||||||
|
if_equal DOWN, .Down
|
||||||
|
.loop_up
|
||||||
|
applymovement PLAYER, .StrongArmUpStep
|
||||||
|
callasm .CheckContinueStrongArm
|
||||||
|
iffalse .loop_up
|
||||||
|
end
|
||||||
|
|
||||||
|
.Down:
|
||||||
|
applymovement PLAYER, .StrongArmFixFacing
|
||||||
|
.loop_down
|
||||||
|
applymovement PLAYER, .StrongArmDownStep
|
||||||
|
callasm .CheckContinueStrongArm
|
||||||
|
iffalse .loop_down
|
||||||
|
applymovement PLAYER, .StrongArmRemoveFixedFacing
|
||||||
|
end
|
||||||
|
|
||||||
|
.CheckContinueStrongArm:
|
||||||
|
xor a
|
||||||
|
ld [wScriptVar], a
|
||||||
|
ld a, [wPlayerTile]
|
||||||
|
call CheckRockyWallTile
|
||||||
|
ret z
|
||||||
|
ld a, $1
|
||||||
|
ld [wScriptVar], a
|
||||||
|
ret
|
||||||
|
|
||||||
|
.StrongArmUpStep:
|
||||||
|
step UP
|
||||||
|
step_end
|
||||||
|
|
||||||
|
.StrongArmDownStep:
|
||||||
|
step DOWN
|
||||||
|
step_end
|
||||||
|
|
||||||
|
.StrongArmFixFacing:
|
||||||
|
turn_head UP
|
||||||
|
fix_facing
|
||||||
|
step_end
|
||||||
|
|
||||||
|
.StrongArmRemoveFixedFacing:
|
||||||
|
remove_fixed_facing
|
||||||
|
turn_head DOWN
|
||||||
|
step_end
|
||||||
|
|
||||||
|
AskStrongArmText:
|
||||||
|
text_far _AskStrongArmText
|
||||||
|
text_end
|
||||||
|
|
||||||
|
UsedStrongArmText:
|
||||||
|
text_far _UsedStrongArmText
|
||||||
|
text_end
|
||||||
|
|
||||||
|
CantStrongArmText:
|
||||||
|
text_far _CantStrongArmText
|
||||||
|
text_end
|
||||||
|
|
||||||
|
WaterSportFunction:
|
||||||
|
call FieldMoveJumptableReset
|
||||||
|
.loop
|
||||||
|
ld hl, .Jumptable
|
||||||
|
call FieldMoveJumptable
|
||||||
|
jr nc, .loop
|
||||||
|
and $7f
|
||||||
|
ld [wFieldMoveSucceeded], a
|
||||||
|
ret
|
||||||
|
|
||||||
|
.Jumptable:
|
||||||
|
dw .TryWaterSport
|
||||||
|
dw .DoWaterSport
|
||||||
|
dw .FailWaterSport
|
||||||
|
|
||||||
|
.TryWaterSport:
|
||||||
|
ld de, ENGINE_CASCADEBADGE
|
||||||
|
call CheckBadge
|
||||||
|
jr c, .nocascadebadge
|
||||||
|
call CheckMapCanWaterSport
|
||||||
|
jr nz, .cannotdive
|
||||||
|
ld a, $1
|
||||||
|
ret
|
||||||
|
|
||||||
|
.nocascadebadge
|
||||||
|
ld a, $80
|
||||||
|
ret
|
||||||
|
|
||||||
|
.cannotdive
|
||||||
|
ld a, $2
|
||||||
|
ret
|
||||||
|
|
||||||
|
.DoWaterSport:
|
||||||
|
call GetPartyNickname
|
||||||
|
ld hl, WaterSportFromMenuScript
|
||||||
|
call QueueScript
|
||||||
|
ld a, $81
|
||||||
|
ret
|
||||||
|
|
||||||
|
.FailWaterSport:
|
||||||
|
ld hl, CantWaterSportText
|
||||||
|
call MenuTextBoxBackup
|
||||||
|
ld a, $80
|
||||||
|
ret
|
||||||
|
|
||||||
|
CantWaterSportText:
|
||||||
|
text_jump _CantWaterSportText
|
||||||
|
db "@"
|
||||||
|
|
||||||
|
CheckMapCanWaterSport:
|
||||||
|
ld a, [wWaterSportMapGroup]
|
||||||
|
and a
|
||||||
|
jr z, .failed
|
||||||
|
ld a, [wWaterSportMapNumber]
|
||||||
|
and a
|
||||||
|
jr z, .failed
|
||||||
|
ld a, [wPlayerStandingTile]
|
||||||
|
call CheckWaterSportTile
|
||||||
|
jr nz, .failed
|
||||||
|
xor a
|
||||||
|
ret
|
||||||
|
|
||||||
|
.failed
|
||||||
|
scf
|
||||||
|
ret
|
||||||
|
|
||||||
|
TryWaterSportOW::
|
||||||
|
call CheckMapCanWaterSport
|
||||||
|
jr c, .failed
|
||||||
|
ld de, ENGINE_CASCADEBADGE
|
||||||
|
call CheckEngineFlag
|
||||||
|
jr c, .cant
|
||||||
|
ld d, DIVE
|
||||||
|
call CheckPartyMove
|
||||||
|
jr c, .cant
|
||||||
|
call GetPartyNick
|
||||||
|
ld a, BANK(AskWaterSportScript)
|
||||||
|
ld hl, AskWaterSportScript
|
||||||
|
call CallScript
|
||||||
|
scf
|
||||||
|
ret
|
||||||
|
|
||||||
|
.failed
|
||||||
|
xor a
|
||||||
|
ret
|
||||||
|
|
||||||
|
.cant
|
||||||
|
ld a, BANK(CantWaterSportScript)
|
||||||
|
ld hl, CantWaterSportScript
|
||||||
|
call CallScript
|
||||||
|
scf
|
||||||
|
ret
|
||||||
|
|
||||||
|
CantWaterSportScript:
|
||||||
|
jumptext CanWaterSportText
|
||||||
|
|
||||||
|
CanWaterSportText:
|
||||||
|
text_jump _CanWaterSportText
|
||||||
|
db "@"
|
||||||
|
|
||||||
|
AskWaterSportScript:
|
||||||
|
opentext
|
||||||
|
copybytetovar wPlayerStandingTile
|
||||||
|
ifequal COLL_DIVE_UP, .up
|
||||||
|
writetext AskWaterSportDownText
|
||||||
|
jump .continue
|
||||||
|
.up
|
||||||
|
writetext AskWaterSportUpText
|
||||||
|
.continue
|
||||||
|
yesorno
|
||||||
|
iftrue UsedWaterSportScript
|
||||||
|
closetext
|
||||||
|
end
|
||||||
|
|
||||||
|
AskWaterSportDownText:
|
||||||
|
text_jump _AskWaterSportDownText
|
||||||
|
db "@"
|
||||||
|
|
||||||
|
AskWaterSportUpText:
|
||||||
|
text_jump _AskWaterSportUpText
|
||||||
|
db "@"
|
||||||
|
|
||||||
|
WaterSportFromMenuScript:
|
||||||
|
special UpdateTimePals
|
||||||
|
|
||||||
|
UsedWaterSportScript:
|
||||||
|
writetext UsedWaterSportText
|
||||||
|
waitbutton
|
||||||
|
closetext
|
||||||
|
special FadeOutPalettes
|
||||||
|
waitsfx
|
||||||
|
divewarp
|
||||||
|
end
|
||||||
|
|
||||||
|
UsedWaterSportText:
|
||||||
|
text_jump _UsedWaterSportText
|
||||||
|
db "@"
|
||||||
|
|
|
@ -1269,6 +1269,8 @@ LoadMapPals:
|
||||||
ld a, BANK(wOBPals1)
|
ld a, BANK(wOBPals1)
|
||||||
call FarCopyWRAM
|
call FarCopyWRAM
|
||||||
|
|
||||||
|
farcall LoadSpecialMapObjectPalette
|
||||||
|
|
||||||
ld a, [wEnvironment]
|
ld a, [wEnvironment]
|
||||||
cp TOWN
|
cp TOWN
|
||||||
jr z, .outside
|
jr z, .outside
|
||||||
|
|
|
@ -1143,13 +1143,22 @@ TryTileCollisionEvent::
|
||||||
.headbutt
|
.headbutt
|
||||||
ld a, [wFacingTileID]
|
ld a, [wFacingTileID]
|
||||||
call CheckHeadbuttTreeTile
|
call CheckHeadbuttTreeTile
|
||||||
jr nz, .surf
|
jr nz, .strong_arm
|
||||||
farcall TryHeadbuttOW
|
farcall TryHeadbuttOW
|
||||||
jr c, .done
|
jr c, .done
|
||||||
jr .noevent
|
jr .noevent
|
||||||
|
|
||||||
|
.strong_arm
|
||||||
|
ld a, [wFacingTileID]
|
||||||
|
call CheckRockyWallTile
|
||||||
|
jr nz, .surf
|
||||||
|
farcall TryStrongArmOW
|
||||||
|
jr .done
|
||||||
|
|
||||||
.surf
|
.surf
|
||||||
farcall TrySurfOW
|
farcall TrySurfOW
|
||||||
|
jr c, .done
|
||||||
|
farcall TryWaterSportOW
|
||||||
jr nc, .noevent
|
jr nc, .noevent
|
||||||
jr .done
|
jr .done
|
||||||
|
|
||||||
|
|
|
@ -98,6 +98,8 @@ CheckUpdatePlayerSprite:
|
||||||
jr c, .ok
|
jr c, .ok
|
||||||
call .CheckSurfing
|
call .CheckSurfing
|
||||||
jr c, .ok
|
jr c, .ok
|
||||||
|
call .CheckDiving
|
||||||
|
jr c, .ok
|
||||||
call .CheckSurfing2
|
call .CheckSurfing2
|
||||||
jr c, .ok
|
jr c, .ok
|
||||||
ret
|
ret
|
||||||
|
@ -116,6 +118,18 @@ CheckUpdatePlayerSprite:
|
||||||
scf
|
scf
|
||||||
ret
|
ret
|
||||||
|
|
||||||
|
.CheckDiving:
|
||||||
|
ld a, [wMapTileset]
|
||||||
|
cp TILESET_UNDERWATER
|
||||||
|
jr nz, .not_underwater
|
||||||
|
ld a, PLAYER_WATER_SPORT
|
||||||
|
ld [wPlayerState], a
|
||||||
|
scf
|
||||||
|
ret
|
||||||
|
.not_underwater
|
||||||
|
and a
|
||||||
|
ret
|
||||||
|
|
||||||
.CheckSurfing2:
|
.CheckSurfing2:
|
||||||
ld a, [wPlayerState]
|
ld a, [wPlayerState]
|
||||||
cp PLAYER_NORMAL
|
cp PLAYER_NORMAL
|
||||||
|
|
|
@ -33,6 +33,8 @@ DoPlayerMovement::
|
||||||
ld a, [wPlayerState]
|
ld a, [wPlayerState]
|
||||||
cp PLAYER_NORMAL
|
cp PLAYER_NORMAL
|
||||||
jr z, .Normal
|
jr z, .Normal
|
||||||
|
cp PLAYER_WATER_SPORT
|
||||||
|
jr z, .Normal
|
||||||
cp PLAYER_SURF
|
cp PLAYER_SURF
|
||||||
jr z, .Surf
|
jr z, .Surf
|
||||||
cp PLAYER_SURF_PIKA
|
cp PLAYER_SURF_PIKA
|
||||||
|
|
|
@ -237,6 +237,8 @@ ScriptCommandTable:
|
||||||
dw Script_trainerpic ; aa
|
dw Script_trainerpic ; aa
|
||||||
dw Script_loadmonindex ; ab
|
dw Script_loadmonindex ; ab
|
||||||
dw Script_checkmaplockedmons ; ac
|
dw Script_checkmaplockedmons ; ac
|
||||||
|
dw Script_divemap
|
||||||
|
dw Script_divewarp
|
||||||
assert_table_length NUM_EVENT_COMMANDS
|
assert_table_length NUM_EVENT_COMMANDS
|
||||||
|
|
||||||
StartScript:
|
StartScript:
|
||||||
|
@ -2414,3 +2416,38 @@ LoadScriptPokemonID:
|
||||||
jp nz, GetPokemonIDFromIndex
|
jp nz, GetPokemonIDFromIndex
|
||||||
ld a, [wScriptVar]
|
ld a, [wScriptVar]
|
||||||
ret
|
ret
|
||||||
|
|
||||||
|
Script_divemap:
|
||||||
|
call GetScriptByte
|
||||||
|
ld [wDiveMapGroup], a
|
||||||
|
call GetScriptByte
|
||||||
|
ld [wDiveMapNumber], a
|
||||||
|
call GetScriptByte
|
||||||
|
ld [wDiveDeltaX], a
|
||||||
|
call GetScriptByte
|
||||||
|
ld [wDiveDeltaY], a
|
||||||
|
ret
|
||||||
|
|
||||||
|
Script_divewarp:
|
||||||
|
ld a, [wDiveMapGroup]
|
||||||
|
ld [wMapGroup], a
|
||||||
|
ld a, [wDiveMapNumber]
|
||||||
|
ld [wMapNumber], a
|
||||||
|
ld a, [wXCoord]
|
||||||
|
ld b, a
|
||||||
|
ld a, [wDiveDeltaX]
|
||||||
|
add b
|
||||||
|
ld [wXCoord], a
|
||||||
|
ld a, [wYCoord]
|
||||||
|
ld b, a
|
||||||
|
ld a, [wDiveDeltaY]
|
||||||
|
add b
|
||||||
|
ld [wYCoord], a
|
||||||
|
ld a, -1
|
||||||
|
ld [wDefaultSpawnpoint], a
|
||||||
|
ld a, MAPSETUP_WARP
|
||||||
|
ld [hMapEntryMethod], a
|
||||||
|
ld a, 1
|
||||||
|
call LoadMapStatus
|
||||||
|
call StopScript
|
||||||
|
ret
|
||||||
|
|
|
@ -64,6 +64,7 @@ CheckGrassCollision::
|
||||||
db COLL_LONG_GRASS
|
db COLL_LONG_GRASS
|
||||||
db COLL_CUT_28
|
db COLL_CUT_28
|
||||||
db COLL_WATER
|
db COLL_WATER
|
||||||
|
db COLL_DIVE_DOWN
|
||||||
db COLL_GRASS_48
|
db COLL_GRASS_48
|
||||||
db COLL_GRASS_49
|
db COLL_GRASS_49
|
||||||
db COLL_GRASS_4A
|
db COLL_GRASS_4A
|
||||||
|
|
|
@ -4,6 +4,7 @@ HandleNewMap:
|
||||||
call ResetFlashIfOutOfCave
|
call ResetFlashIfOutOfCave
|
||||||
call GetCurrentMapSceneID
|
call GetCurrentMapSceneID
|
||||||
call ResetBikeFlags
|
call ResetBikeFlags
|
||||||
|
call ResetDiveMap
|
||||||
call ResetMapLockedIDs
|
call ResetMapLockedIDs
|
||||||
ld a, MAPCALLBACK_NEWMAP
|
ld a, MAPCALLBACK_NEWMAP
|
||||||
call RunMapCallback
|
call RunMapCallback
|
||||||
|
|
|
@ -141,6 +141,11 @@ PokemonActionSubmenu:
|
||||||
dbw MONMENUITEM_WATERFALL, MonMenu_Waterfall
|
dbw MONMENUITEM_WATERFALL, MonMenu_Waterfall
|
||||||
dbw MONMENUITEM_ROCKSMASH, MonMenu_RockSmash
|
dbw MONMENUITEM_ROCKSMASH, MonMenu_RockSmash
|
||||||
dbw MONMENUITEM_SWEETSCENT, MonMenu_SweetScent
|
dbw MONMENUITEM_SWEETSCENT, MonMenu_SweetScent
|
||||||
|
dbw MONMENUITEM_UPROOT, MonMenu_Uproot
|
||||||
|
dbw MONMENUITEM_WATER_SPORT,MonMenu_WaterSport
|
||||||
|
dbw MONMENUITEM_STRONG_ARM, MonMenu_StrongArm
|
||||||
|
dbw MONMENUITEM_BRIGHT_MOSS,MonMenu_BrightMoss
|
||||||
|
dbw MONMENUITEM_WIND_RIDE, MonMenu_WindRide
|
||||||
dbw MONMENUITEM_STATS, OpenPartyStats
|
dbw MONMENUITEM_STATS, OpenPartyStats
|
||||||
dbw MONMENUITEM_SWITCH, SwitchPartyMons
|
dbw MONMENUITEM_SWITCH, SwitchPartyMons
|
||||||
dbw MONMENUITEM_ITEM, GiveTakePartyMonItem
|
dbw MONMENUITEM_ITEM, GiveTakePartyMonItem
|
||||||
|
@ -794,6 +799,43 @@ MonMenu_SweetScent:
|
||||||
ld a, $2
|
ld a, $2
|
||||||
ret
|
ret
|
||||||
|
|
||||||
|
MonMenu_Uproot:
|
||||||
|
ld a, $3 ; will be unused for now, so let's stay in the party menu
|
||||||
|
ret
|
||||||
|
|
||||||
|
MonMenu_WaterSport:
|
||||||
|
farcall WaterSportFunction
|
||||||
|
ld a, [wFieldMoveSucceeded]
|
||||||
|
cp $1
|
||||||
|
jr nz, .Fail
|
||||||
|
ld b, $4
|
||||||
|
ld a, $2
|
||||||
|
ret
|
||||||
|
.Fail:
|
||||||
|
ld a, $3
|
||||||
|
ret
|
||||||
|
|
||||||
|
MonMenu_StrongArm: ; just rock climb...
|
||||||
|
farcall StrongArmFunction
|
||||||
|
ld a, [wFieldMoveSucceeded]
|
||||||
|
cp $1
|
||||||
|
jr nz, .Fail
|
||||||
|
ld b, $4
|
||||||
|
ld a, $2
|
||||||
|
ret
|
||||||
|
|
||||||
|
.Fail:
|
||||||
|
ld a, $3
|
||||||
|
ret
|
||||||
|
|
||||||
|
MonMenu_BrightMoss:
|
||||||
|
ld a, $3 ; will be unused for now, so let's stay in the party menu
|
||||||
|
ret
|
||||||
|
|
||||||
|
MonMenu_WindRide:
|
||||||
|
ld a, $3 ; will be unused for now, so let's stay in the party menu
|
||||||
|
ret
|
||||||
|
|
||||||
ChooseMoveToDelete:
|
ChooseMoveToDelete:
|
||||||
ld hl, wOptions
|
ld hl, wOptions
|
||||||
ld a, [hl]
|
ld a, [hl]
|
||||||
|
|
|
@ -38,7 +38,7 @@ _AnimateTileset::
|
||||||
Tileset0Anim:
|
Tileset0Anim:
|
||||||
TilesetJohtoModernAnim:
|
TilesetJohtoModernAnim:
|
||||||
dw vTiles2 tile $14, AnimateWaterTile
|
dw vTiles2 tile $14, AnimateWaterTile
|
||||||
dw NULL, WaitTileAnimation
|
dw vTiles2 tile $5b, AnimateDeepWaterTile
|
||||||
dw NULL, WaitTileAnimation
|
dw NULL, WaitTileAnimation
|
||||||
dw NULL, WaitTileAnimation
|
dw NULL, WaitTileAnimation
|
||||||
dw NULL, AnimateWaterPalette
|
dw NULL, AnimateWaterPalette
|
||||||
|
@ -357,6 +357,23 @@ TilesetNihonMartAnim:
|
||||||
dw NULL, WaitTileAnimation
|
dw NULL, WaitTileAnimation
|
||||||
dw NULL, DoneTileAnimation
|
dw NULL, DoneTileAnimation
|
||||||
|
|
||||||
|
; Currently unused.
|
||||||
|
; Zeta, you've made your own tileset, but check here and see what you want.
|
||||||
|
; https://github.com/Rangi42/pokecrystal/commit/c21561ea717feef9b2eb3785c2ea112cd0d19ba0#diff-88dbff1eb3920f69b17a3d5f613643e1a41096514706bc09f449e4aa637f20e4R5647
|
||||||
|
TilesetUnderwaterAnim:
|
||||||
|
dw NULL, WaitTileAnimation
|
||||||
|
dw NULL, WaitTileAnimation
|
||||||
|
dw NULL, WaitTileAnimation
|
||||||
|
dw NULL, UnderwaterBubbleTile
|
||||||
|
dw NULL, WaitTileAnimation
|
||||||
|
dw NULL, AnimateSeaweedTile1
|
||||||
|
dw NULL, AnimateSeaweedTile2
|
||||||
|
dw NULL, WaitTileAnimation
|
||||||
|
dw NULL, WaitTileAnimation
|
||||||
|
dw NULL, WaitTileAnimation
|
||||||
|
dw NULL, StandingTileFrame8
|
||||||
|
dw NULL, DoneTileAnimation
|
||||||
|
|
||||||
DoneTileAnimation:
|
DoneTileAnimation:
|
||||||
; Reset the animation command loop.
|
; Reset the animation command loop.
|
||||||
xor a
|
xor a
|
||||||
|
@ -551,6 +568,32 @@ AnimateWaterTile:
|
||||||
.WaterTileFrames:
|
.WaterTileFrames:
|
||||||
INCBIN "gfx/tilesets/water/water.2bpp"
|
INCBIN "gfx/tilesets/water/water.2bpp"
|
||||||
|
|
||||||
|
AnimateDeepWaterTile:
|
||||||
|
; Draw a deep water tile for the current frame in VRAM tile at de.
|
||||||
|
; Save sp in bc (see WriteTile).
|
||||||
|
ld hl, sp+0
|
||||||
|
ld b, h
|
||||||
|
ld c, l
|
||||||
|
ld a, [wTileAnimationTimer]
|
||||||
|
; 4 tile graphics, updated every other frame.
|
||||||
|
and %110
|
||||||
|
; 2 x 8 = 16 bytes per tile
|
||||||
|
add a
|
||||||
|
add a
|
||||||
|
add a
|
||||||
|
add LOW(DeepWaterTileFrames)
|
||||||
|
ld l, a
|
||||||
|
ld a, 0
|
||||||
|
adc HIGH(DeepWaterTileFrames)
|
||||||
|
ld h, a
|
||||||
|
; The stack now points to the start of the tile for this frame.
|
||||||
|
ld sp, hl
|
||||||
|
ld l, e
|
||||||
|
ld h, d
|
||||||
|
jp WriteTile
|
||||||
|
DeepWaterTileFrames:
|
||||||
|
INCBIN "gfx/tilesets/water/deep-water.2bpp"
|
||||||
|
|
||||||
ForestTreeLeftAnimation:
|
ForestTreeLeftAnimation:
|
||||||
; Save the stack pointer in bc for WriteTile to restore
|
; Save the stack pointer in bc for WriteTile to restore
|
||||||
ld hl, sp+0
|
ld hl, sp+0
|
||||||
|
@ -1124,3 +1167,76 @@ WhirlpoolTiles1: INCBIN "gfx/tilesets/whirlpool/1.2bpp"
|
||||||
WhirlpoolTiles2: INCBIN "gfx/tilesets/whirlpool/2.2bpp"
|
WhirlpoolTiles2: INCBIN "gfx/tilesets/whirlpool/2.2bpp"
|
||||||
WhirlpoolTiles3: INCBIN "gfx/tilesets/whirlpool/3.2bpp"
|
WhirlpoolTiles3: INCBIN "gfx/tilesets/whirlpool/3.2bpp"
|
||||||
WhirlpoolTiles4: INCBIN "gfx/tilesets/whirlpool/4.2bpp"
|
WhirlpoolTiles4: INCBIN "gfx/tilesets/whirlpool/4.2bpp"
|
||||||
|
|
||||||
|
UnderwaterBubbleTile:
|
||||||
|
; No parameters.
|
||||||
|
; Save sp in bc (see WriteTile).
|
||||||
|
ld hl, sp+$0
|
||||||
|
ld b, h
|
||||||
|
ld c, l
|
||||||
|
; Alternate tile graphic every frame
|
||||||
|
ld a, [wTileAnimationTimer]
|
||||||
|
and %111 ; 8 frames
|
||||||
|
swap a ; * 16 bytes per tile
|
||||||
|
ld e, a
|
||||||
|
ld d, 0
|
||||||
|
ld hl, UnderwaterBubbleTileFrames
|
||||||
|
add hl, de
|
||||||
|
ld sp, hl
|
||||||
|
ld hl, vTiles2 tile $13 ; index of bubble tile
|
||||||
|
jp WriteTile
|
||||||
|
|
||||||
|
UnderwaterBubbleTileFrames:
|
||||||
|
INCBIN "gfx/tilesets/bubble/1.2bpp"
|
||||||
|
INCBIN "gfx/tilesets/bubble/2.2bpp"
|
||||||
|
INCBIN "gfx/tilesets/bubble/3.2bpp"
|
||||||
|
INCBIN "gfx/tilesets/bubble/4.2bpp"
|
||||||
|
INCBIN "gfx/tilesets/bubble/5.2bpp"
|
||||||
|
INCBIN "gfx/tilesets/bubble/5.2bpp"
|
||||||
|
INCBIN "gfx/tilesets/bubble/5.2bpp"
|
||||||
|
INCBIN "gfx/tilesets/bubble/5.2bpp"
|
||||||
|
|
||||||
|
AnimateSeaweedTile1:
|
||||||
|
; No parameters.
|
||||||
|
; Save sp in bc (see WriteTile).
|
||||||
|
ld hl, sp+$0
|
||||||
|
ld b, h
|
||||||
|
ld c, l
|
||||||
|
; Alternate tile graphic every eighth frame
|
||||||
|
ld a, [wTileAnimationTimer]
|
||||||
|
and %100
|
||||||
|
srl a
|
||||||
|
srl a
|
||||||
|
swap a ; * 16 bytes per tile
|
||||||
|
ld e, a
|
||||||
|
ld d, 0
|
||||||
|
ld hl, SeaweedTileFrames
|
||||||
|
add hl, de
|
||||||
|
ld sp, hl
|
||||||
|
ld hl, vTiles2 tile $03 ; index of seaweed tile 1
|
||||||
|
jp WriteTile
|
||||||
|
|
||||||
|
AnimateSeaweedTile2:
|
||||||
|
; No parameters.
|
||||||
|
; Save sp in bc (see WriteTile).
|
||||||
|
ld hl, sp+$0
|
||||||
|
ld b, h
|
||||||
|
ld c, l
|
||||||
|
; Alternate tile graphic every eighth frame
|
||||||
|
ld a, [wTileAnimationTimer]
|
||||||
|
xor %100 ; invert tile alternation from AnimateSeaweedTile1
|
||||||
|
and %100
|
||||||
|
srl a
|
||||||
|
srl a
|
||||||
|
swap a ; * 16 bytes per tile
|
||||||
|
ld e, a
|
||||||
|
ld d, 0
|
||||||
|
ld hl, SeaweedTileFrames
|
||||||
|
add hl, de
|
||||||
|
ld sp, hl
|
||||||
|
ld hl, vTiles2 tile $04 ; index of seaweed tile 2
|
||||||
|
jp WriteTile
|
||||||
|
|
||||||
|
SeaweedTileFrames:
|
||||||
|
INCBIN "gfx/tilesets/seaweed/1.2bpp"
|
||||||
|
INCBIN "gfx/tilesets/seaweed/2.2bpp"
|
||||||
|
|
|
@ -1,3 +1,8 @@
|
||||||
|
; Zeta, Rangi's Dive code sets something special here.
|
||||||
|
; https://github.com/Rangi42/pokecrystal/commit/c21561ea717feef9b2eb3785c2ea112cd0d19ba0#diff-3f65a383d53b5b6bef93c0cf6b1078db365ec51031b8c9b8cccff1d8b81b77db
|
||||||
|
; Test and see if you like it; do so by adding the changes from the equivalent file.
|
||||||
|
; Requires underwater tileset to exist.
|
||||||
|
|
||||||
LoadSpecialMapPalette:
|
LoadSpecialMapPalette:
|
||||||
ld a, [wMapTileset]
|
ld a, [wMapTileset]
|
||||||
cp TILESET_POKECOM_CENTER
|
cp TILESET_POKECOM_CENTER
|
||||||
|
|
|
@ -151,3 +151,4 @@ ChannelerGFX:: INCBIN "gfx/sprites/channeler.2bpp"
|
||||||
BaldingGuyGFX:: INCBIN "gfx/sprites/balding_guy.2bpp"
|
BaldingGuyGFX:: INCBIN "gfx/sprites/balding_guy.2bpp"
|
||||||
GameboyGirlGFX:: INCBIN "gfx/sprites/gameboy_girl.2bpp"
|
GameboyGirlGFX:: INCBIN "gfx/sprites/gameboy_girl.2bpp"
|
||||||
OverworldPikachuGFX:: INCBIN "gfx/sprites/pikachu.2bpp"
|
OverworldPikachuGFX:: INCBIN "gfx/sprites/pikachu.2bpp"
|
||||||
|
DiveSpriteGFX:: INCBIN "gfx/sprites/dive.2bpp"
|
||||||
|
|
BIN
gfx/sprites/dive.png
Normal file
After Width: | Height: | Size: 343 B |
|
@ -111,6 +111,9 @@ INCLUDE "gfx/tilesets/battle_tower_outside_palette_map.asm"
|
||||||
TilesetLavenderCryptPalMap:
|
TilesetLavenderCryptPalMap:
|
||||||
INCLUDE "gfx/tilesets/lavendercrypt_palette_map.asm"
|
INCLUDE "gfx/tilesets/lavendercrypt_palette_map.asm"
|
||||||
|
|
||||||
|
TilesetUnderwaterPalMap:
|
||||||
|
INCLUDE "gfx/tilesets/underwater_palette_map.asm"
|
||||||
|
|
||||||
MapGroupPalettes: ; unreferenced
|
MapGroupPalettes: ; unreferenced
|
||||||
; entries correspond to MAPGROUP_* constants
|
; entries correspond to MAPGROUP_* constants
|
||||||
rept NUM_MAP_GROUPS
|
rept NUM_MAP_GROUPS
|
||||||
|
|
|
@ -36,15 +36,6 @@ INCBIN "data/tilesets/ice_path_metatiles.bin"
|
||||||
TilesetIcePathColl::
|
TilesetIcePathColl::
|
||||||
INCLUDE "data/tilesets/ice_path_collision.asm"
|
INCLUDE "data/tilesets/ice_path_collision.asm"
|
||||||
|
|
||||||
TilesetPlayersRoomGFX::
|
|
||||||
INCBIN "gfx/tilesets/players_room.2bpp.lz"
|
|
||||||
|
|
||||||
TilesetPlayersRoomMeta::
|
|
||||||
INCBIN "data/tilesets/players_room_metatiles.bin"
|
|
||||||
|
|
||||||
TilesetPlayersRoomColl::
|
|
||||||
INCLUDE "data/tilesets/players_room_collision.asm"
|
|
||||||
|
|
||||||
|
|
||||||
SECTION "Tileset Data 2", ROMX
|
SECTION "Tileset Data 2", ROMX
|
||||||
|
|
||||||
|
@ -666,3 +657,14 @@ INCLUDE "data/tilesets/forest_kanto_collision.asm"
|
||||||
|
|
||||||
TilesetForestKantoAttr::
|
TilesetForestKantoAttr::
|
||||||
INCBIN "data/tilesets/forest_kanto_attributes.bin"
|
INCBIN "data/tilesets/forest_kanto_attributes.bin"
|
||||||
|
|
||||||
|
SECTION "Tileset Data 17", ROMX
|
||||||
|
; moved to make room for new rocky wall colls
|
||||||
|
TilesetPlayersRoomGFX::
|
||||||
|
INCBIN "gfx/tilesets/players_room.2bpp.lz"
|
||||||
|
|
||||||
|
TilesetPlayersRoomMeta::
|
||||||
|
INCBIN "data/tilesets/players_room_metatiles.bin"
|
||||||
|
|
||||||
|
TilesetPlayersRoomColl::
|
||||||
|
INCLUDE "data/tilesets/players_room_collision.asm"
|
||||||
|
|
BIN
gfx/tilesets/bubble/1.png
Normal file
After Width: | Height: | Size: 88 B |
BIN
gfx/tilesets/bubble/2.png
Normal file
After Width: | Height: | Size: 90 B |
BIN
gfx/tilesets/bubble/3.png
Normal file
After Width: | Height: | Size: 86 B |
BIN
gfx/tilesets/bubble/4.png
Normal file
After Width: | Height: | Size: 88 B |
BIN
gfx/tilesets/bubble/5.png
Normal file
After Width: | Height: | Size: 86 B |
Before Width: | Height: | Size: 3.5 KiB After Width: | Height: | Size: 3.7 KiB |
Before Width: | Height: | Size: 840 B After Width: | Height: | Size: 2.1 KiB |
Before Width: | Height: | Size: 2.5 KiB After Width: | Height: | Size: 5.7 KiB |
Before Width: | Height: | Size: 4.4 KiB After Width: | Height: | Size: 4.6 KiB |
Before Width: | Height: | Size: 5 KiB After Width: | Height: | Size: 5.2 KiB |
|
@ -9,11 +9,10 @@
|
||||||
tilepal 0, RED, BROWN, WATER, WATER, BROWN, GREEN, BROWN, BROWN
|
tilepal 0, RED, BROWN, WATER, WATER, BROWN, GREEN, BROWN, BROWN
|
||||||
tilepal 0, BROWN, WATER, GRAY, BROWN, BROWN, BROWN, GRAY, GRAY
|
tilepal 0, BROWN, WATER, GRAY, BROWN, BROWN, BROWN, GRAY, GRAY
|
||||||
tilepal 0, BROWN, BROWN, BROWN, BROWN, BROWN, BROWN, BROWN, BROWN
|
tilepal 0, BROWN, BROWN, BROWN, BROWN, BROWN, BROWN, BROWN, BROWN
|
||||||
tilepal 0, WATER, GRAY, GRAY, GRAY, BROWN, BROWN, GRAY, GRAY
|
tilepal 0, WATER, GRAY, GRAY, WATER, BROWN, BROWN, GRAY, GRAY
|
||||||
tilepal 0, ROOF, ROOF, ROOF, ROOF, ROOF, ROOF, ROOF, ROOF
|
rept 16
|
||||||
tilepal 0, ROOF, ROOF, ROOF, ROOF, ROOF, ROOF, ROOF, ROOF
|
db $ff
|
||||||
tilepal 0, ROOF, ROOF, ROOF, ROOF, ROOF, ROOF, ROOF, ROOF
|
endr
|
||||||
tilepal 0, ROOF, ROOF, ROOF, ROOF, ROOF, ROOF, ROOF, TEXT
|
|
||||||
tilepal 1, BROWN, BROWN, BROWN, RED, RED, RED, RED, RED
|
tilepal 1, BROWN, BROWN, BROWN, RED, RED, RED, RED, RED
|
||||||
tilepal 1, RED, RED, RED, RED, RED, RED, RED, RED
|
tilepal 1, RED, RED, RED, RED, RED, RED, RED, RED
|
||||||
tilepal 1, RED, RED, RED, RED, BROWN, BROWN, BROWN, BROWN
|
tilepal 1, RED, RED, RED, RED, BROWN, BROWN, BROWN, BROWN
|
||||||
|
|
Before Width: | Height: | Size: 2.3 KiB After Width: | Height: | Size: 5.4 KiB |
Before Width: | Height: | Size: 1.4 KiB After Width: | Height: | Size: 3.5 KiB |
BIN
gfx/tilesets/seaweed/1.png
Normal file
After Width: | Height: | Size: 87 B |
BIN
gfx/tilesets/seaweed/2.png
Normal file
After Width: | Height: | Size: 90 B |
BIN
gfx/tilesets/water/deep-water.png
Normal file
After Width: | Height: | Size: 234 B |
|
@ -29,6 +29,12 @@ EventFlagAction::
|
||||||
call FlagAction
|
call FlagAction
|
||||||
ret
|
ret
|
||||||
|
|
||||||
|
ResetDiveMap::
|
||||||
|
xor a
|
||||||
|
ld [wDiveMapGroup], a
|
||||||
|
ld [wDiveMapNumber], a
|
||||||
|
ret
|
||||||
|
|
||||||
FlagAction::
|
FlagAction::
|
||||||
; Perform action b on bit de in flag array hl.
|
; Perform action b on bit de in flag array hl.
|
||||||
|
|
||||||
|
|
|
@ -25,4 +25,9 @@ IsHMMove::
|
||||||
dw FLASH
|
dw FLASH
|
||||||
dw WATERFALL
|
dw WATERFALL
|
||||||
dw WHIRLPOOL
|
dw WHIRLPOOL
|
||||||
|
dw UPROOT
|
||||||
|
dw WATER_SPORT
|
||||||
|
dw STRONG_ARM
|
||||||
|
dw BRIGHT_MOSS ; this will be added as a hm in the 16bit patch
|
||||||
|
dw WIND_RIDE
|
||||||
dw -1 ; end
|
dw -1 ; end
|
||||||
|
|
|
@ -159,8 +159,6 @@ CheckPitTile::
|
||||||
CheckIceTile::
|
CheckIceTile::
|
||||||
cp COLL_ICE
|
cp COLL_ICE
|
||||||
ret z
|
ret z
|
||||||
cp COLL_ICE_2B
|
|
||||||
ret z
|
|
||||||
scf
|
scf
|
||||||
ret
|
ret
|
||||||
|
|
||||||
|
@ -173,6 +171,12 @@ CheckWhirlpoolTile::
|
||||||
scf
|
scf
|
||||||
ret
|
ret
|
||||||
|
|
||||||
|
CheckDiveTile::
|
||||||
|
cp COLL_DIVE_UP
|
||||||
|
ret z
|
||||||
|
cp COLL_DIVE_DOWN
|
||||||
|
ret
|
||||||
|
|
||||||
CheckWaterfallTile::
|
CheckWaterfallTile::
|
||||||
cp COLL_WATERFALL
|
cp COLL_WATERFALL
|
||||||
ret z
|
ret z
|
||||||
|
@ -563,3 +567,7 @@ GetSpriteDirection::
|
||||||
ld a, [hl]
|
ld a, [hl]
|
||||||
maskbits NUM_DIRECTIONS, 2
|
maskbits NUM_DIRECTIONS, 2
|
||||||
ret
|
ret
|
||||||
|
|
||||||
|
CheckRockyWallTile::
|
||||||
|
cp COLL_ROCKY_WALL
|
||||||
|
ret
|
||||||
|
|
|
@ -181,6 +181,7 @@ ENDM
|
||||||
command startloop ; ae
|
command startloop ; ae
|
||||||
command curl ; af
|
command curl ; af
|
||||||
command coinhurlpower
|
command coinhurlpower
|
||||||
|
command doubleunderwaterdamage
|
||||||
DEF NUM_EFFECT_COMMANDS EQU const_value - 1
|
DEF NUM_EFFECT_COMMANDS EQU const_value - 1
|
||||||
|
|
||||||
const_def -1, -1
|
const_def -1, -1
|
||||||
|
|
|
@ -1054,6 +1054,30 @@ MACRO getname
|
||||||
db \1 ; memory
|
db \1 ; memory
|
||||||
ENDM
|
ENDM
|
||||||
|
|
||||||
|
; divemap macro.
|
||||||
|
; When adding a divemap to an area, you do it like so;
|
||||||
|
; callback MAPCALLBACK_NEWMAP, .DiveMap
|
||||||
|
;.DiveMap:
|
||||||
|
; divemap MAPCONSTHERE
|
||||||
|
; return
|
||||||
|
; Got it?
|
||||||
|
|
||||||
|
const divemap_command
|
||||||
|
MACRO divemap
|
||||||
|
if _NARG == 1
|
||||||
|
divemap \1, 0, 0
|
||||||
|
else
|
||||||
|
db divemap_command
|
||||||
|
map_id \1 ; map
|
||||||
|
db \2 ; delta x
|
||||||
|
db \3 ; delta y
|
||||||
|
endc
|
||||||
|
ENDM
|
||||||
|
const divewarp_command
|
||||||
|
MACRO divewarp
|
||||||
|
db divewarp_command
|
||||||
|
ENDM
|
||||||
|
|
||||||
const wait_command ; $a8
|
const wait_command ; $a8
|
||||||
MACRO wait
|
MACRO wait
|
||||||
db wait_command
|
db wait_command
|
||||||
|
|
|
@ -1,2 +1,2 @@
|
||||||
”dbQQ>???;”dN>?,,´µ)”dN$W*,¶·)”dN1(,,,)”dP\ŤŽ*,)”d{{y|r(,)”-{
|
”dbQQ>>??;”dN>?,(´µ)”dN$½*(¶·)”dN1($W½%”dP\<1A>Ž*,)”d{{y|r(,)”-{
|
||||||
{t(,)”C-$W%<25>™™™™™™™™™
|
{t(,)”C-$½%˜™™™™™™™™™
|
|
@ -8,12 +8,12 @@ DebugRoom_MapScripts:
|
||||||
|
|
||||||
DebugPokemon1Script:
|
DebugPokemon1Script:
|
||||||
opentext
|
opentext
|
||||||
getmonname STRING_BUFFER_3, COATL
|
getmonname STRING_BUFFER_3, MACHAMP
|
||||||
writetext ReceivedDebugPokemonText
|
writetext ReceivedDebugPokemonText
|
||||||
playsound SFX_CAUGHT_MON
|
playsound SFX_CAUGHT_MON
|
||||||
waitsfx
|
waitsfx
|
||||||
promptbutton
|
promptbutton
|
||||||
givepoke COATL, 65, TM_ROCK_SMASH
|
givepoke MACHAMP, 65, TM_ROCK_SMASH
|
||||||
closetext
|
closetext
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -211,6 +211,7 @@ DebugItemScript:
|
||||||
giveitem HELIX_FOSSIL, 2
|
giveitem HELIX_FOSSIL, 2
|
||||||
giveitem OLD_AMBER, 2
|
giveitem OLD_AMBER, 2
|
||||||
giveitem COIN_CASE
|
giveitem COIN_CASE
|
||||||
|
giveitem HM_STRONG_ARM
|
||||||
givecoins 2500
|
givecoins 2500
|
||||||
closetext
|
closetext
|
||||||
end
|
end
|
||||||
|
@ -409,7 +410,7 @@ DebugRoom_MapEvents:
|
||||||
warp_event 23, 14, PLAYERS_HOUSE_1F, 1
|
warp_event 23, 14, PLAYERS_HOUSE_1F, 1
|
||||||
warp_event 3, 20, SILENT_HILLS, 1
|
warp_event 3, 20, SILENT_HILLS, 1
|
||||||
warp_event 11, 15, LAKE_OF_RAGE, 3
|
warp_event 11, 15, LAKE_OF_RAGE, 3
|
||||||
warp_event 27, 5, PEWTER_CITY, 2
|
warp_event 27, 5, SILVER_CAVE_ROOM_2, 1 ; test strong arm
|
||||||
warp_event 15, 2, GOLDENROD_CITY, 1 ; city warp
|
warp_event 15, 2, GOLDENROD_CITY, 1 ; city warp
|
||||||
warp_event 4, 9, SUMMER_BEACH_HOUSE, 1 ; left lab/league warp
|
warp_event 4, 9, SUMMER_BEACH_HOUSE, 1 ; left lab/league warp
|
||||||
warp_event 5, 9, BLUE_FOREST, 1 ; right lab/league warp
|
warp_event 5, 9, BLUE_FOREST, 1 ; right lab/league warp
|
||||||
|
|
|
@ -12,5 +12,5 @@
|
||||||
)++
|
)++
|
||||||
!"(*!
|
!"(*!
|
||||||
+
|
+
|
||||||
*
|
A*
|
||||||
(!)+
|
(!)+
|
|
@ -19,8 +19,8 @@
|
||||||
)-..7.
|
)-..7.
|
||||||
-
|
-
|
||||||
-/''
|
-/''
|
||||||
-
|
\-
|
||||||
-
|
-
|
||||||
*-./
|
\
\*-./
|
||||||
-/,,,-/$$$$-./
|
-/,,,-/$$$$-./
|
||||||
%)$$$$ #
|
%)$$$$ #
|
|
@ -387,7 +387,7 @@ wAttackMissed::
|
||||||
wPlayerSubStatus1:: db
|
wPlayerSubStatus1:: db
|
||||||
wPlayerSubStatus2:: db
|
wPlayerSubStatus2:: db
|
||||||
wPlayerSubStatus3:: db
|
wPlayerSubStatus3:: db
|
||||||
wPlayerSubStatus4:: db
|
wPlayerSubStatus4:: db ; bit 3 is underwater now
|
||||||
wPlayerSubStatus5:: db
|
wPlayerSubStatus5:: db
|
||||||
|
|
||||||
wEnemySubStatus1:: db
|
wEnemySubStatus1:: db
|
||||||
|
@ -3291,7 +3291,10 @@ wBackupWarpNumber:: db
|
||||||
wBackupMapGroup:: db
|
wBackupMapGroup:: db
|
||||||
wBackupMapNumber:: db
|
wBackupMapNumber:: db
|
||||||
|
|
||||||
ds 3
|
wDiveMapGroup:: db
|
||||||
|
wDiveMapNumber:: db
|
||||||
|
wDiveDeltaX:: db
|
||||||
|
wDiveDeltaY:: db
|
||||||
|
|
||||||
wLastSpawnMapGroup:: db
|
wLastSpawnMapGroup:: db
|
||||||
wLastSpawnMapNumber:: db
|
wLastSpawnMapNumber:: db
|
||||||
|
|