From 093bda0253dad3ed92cf34a4b613c23d4c314088 Mon Sep 17 00:00:00 2001 From: Llinos Evans <36418502+PlagueVonKarma@users.noreply.github.com> Date: Sat, 28 Dec 2024 06:26:01 +0000 Subject: [PATCH] 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: https://github.com/Rangi42/pokecrystal/commit/c21561ea717feef9b2eb3785c2ea112cd0d19ba0#diff-5508f3b794fc68821ba35e94b6a293b2aaaa16c02a1b34fac70d03fd2f74c4b2R113 --- README.md | 2 + constants/battle_anim_constants.asm | 2 + constants/battle_constants.asm | 2 +- constants/collision_constants.asm | 4 +- constants/item_constants.asm | 6 + constants/menu_constants.asm | 5 + constants/move_effect_constants.asm | 3 + constants/sprite_constants.asm | 1 + constants/wram_constants.asm | 13 +- data/battle/effect_command_pointers.asm | 1 + data/battle_anims/objects.asm | 2 + data/collision/collision_permissions.asm | 6 +- data/items/attributes.asm | 20 +- data/items/names.asm | 11 +- data/mon_menu.asm | 7 +- data/moves/animations.asm | 39 ++- data/moves/descriptions.asm | 4 +- data/moves/effects.asm | 65 +++++ data/moves/effects_pointers.asm | 3 + data/moves/moves.asm | 8 +- data/sprites/player_sprites.asm | 3 + data/sprites/sprites.asm | 1 + data/text/common_2.asm | 61 ++++- data/tilesets/cave_attributes.bin | Bin 1456 -> 1488 bytes data/tilesets/cave_collision.asm | 2 + data/tilesets/cave_metatiles.bin | Bin 1456 -> 1488 bytes data/tilesets/dark_cave_attributes.bin | Bin 1024 -> 1056 bytes data/tilesets/dark_cave_collision.asm | 2 + data/tilesets/dark_cave_metatiles.bin | 2 +- data/tilesets/kanto_attributes.bin | Bin 3024 -> 3040 bytes data/tilesets/kanto_collision.asm | 1 + data/tilesets/kanto_metatiles.bin | Bin 3024 -> 3040 bytes engine/battle/ai/scoring.asm | 43 ++- engine/battle/core.asm | 18 ++ engine/battle/effect_commands.asm | 90 +++++-- engine/battle_anims/bg_effects.asm | 6 + engine/events/overworld.asm | 317 ++++++++++++++++++++++- engine/gfx/color.asm | 2 + engine/overworld/events.asm | 11 +- engine/overworld/map_setup.asm | 14 + engine/overworld/player_movement.asm | 2 + engine/overworld/scripting.asm | 37 +++ engine/overworld/tile_events.asm | 1 + engine/overworld/warp_connection.asm | 1 + engine/pokemon/mon_menu.asm | 42 +++ engine/tilesets/tileset_anims.asm | 118 ++++++++- engine/tilesets/tileset_palettes.asm | 5 + gfx/sprites.asm | 1 + gfx/sprites/dive.png | Bin 0 -> 343 bytes gfx/tileset_palette_maps.asm | 3 + gfx/tilesets.asm | 22 +- gfx/tilesets/bubble/1.png | Bin 0 -> 88 bytes gfx/tilesets/bubble/2.png | Bin 0 -> 90 bytes gfx/tilesets/bubble/3.png | Bin 0 -> 86 bytes gfx/tilesets/bubble/4.png | Bin 0 -> 88 bytes gfx/tilesets/bubble/5.png | Bin 0 -> 86 bytes gfx/tilesets/cave.png | Bin 3615 -> 3802 bytes gfx/tilesets/dark_cave.png | Bin 840 -> 2106 bytes gfx/tilesets/ice_path.png | Bin 2581 -> 5788 bytes gfx/tilesets/johto.png | Bin 4548 -> 4749 bytes gfx/tilesets/johto_modern.png | Bin 5105 -> 5312 bytes gfx/tilesets/johto_palette_map.asm | 9 +- gfx/tilesets/kanto.png | Bin 2357 -> 5504 bytes gfx/tilesets/nihon_south.png | Bin 1438 -> 3551 bytes gfx/tilesets/seaweed/1.png | Bin 0 -> 87 bytes gfx/tilesets/seaweed/2.png | Bin 0 -> 90 bytes gfx/tilesets/water/deep-water.png | Bin 0 -> 234 bytes home/flag.asm | 6 + home/hm_moves.asm | 5 + home/map_objects.asm | 12 +- macros/scripts/battle_commands.asm | 1 + macros/scripts/events.asm | 24 ++ maps/CinnabarIsland.ablk | 4 +- maps/DebugRoom.asm | 7 +- maps/RockTunnelB1F.ablk | 2 +- maps/SilverCaveRoom2.ablk | 4 +- ram/wram.asm | 7 +- 77 files changed, 993 insertions(+), 97 deletions(-) create mode 100644 gfx/sprites/dive.png create mode 100644 gfx/tilesets/bubble/1.png create mode 100644 gfx/tilesets/bubble/2.png create mode 100644 gfx/tilesets/bubble/3.png create mode 100644 gfx/tilesets/bubble/4.png create mode 100644 gfx/tilesets/bubble/5.png create mode 100644 gfx/tilesets/seaweed/1.png create mode 100644 gfx/tilesets/seaweed/2.png create mode 100644 gfx/tilesets/water/deep-water.png diff --git a/README.md b/README.md index 23a0fb1..22b63c5 100644 --- a/README.md +++ b/README.md @@ -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 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! +- Walls can be climbed using Strong Arm, functionality identical to HGSS Rock Climb. # 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. @@ -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) - 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). +- [PiaCarrot/pokeorange](https://github.com/PiaCarrot/pokeorange) - [Rock Climb functionality](https://github.com/pret/pokecrystal/wiki/Rock-Climb) ## 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 diff --git a/constants/battle_anim_constants.asm b/constants/battle_anim_constants.asm index 518eb2c..c0194d0 100644 --- a/constants/battle_anim_constants.asm +++ b/constants/battle_anim_constants.asm @@ -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_COIN_HURL const ANIM_OBJ_SHOOTING_MIST + const ANIM_OBJ_WATER_SPORT_1 + const ANIM_OBJ_WATER_SPORT_2 DEF NUM_ANIM_OBJS EQU const_value ; DoBattleAnimFrame arguments (see engine/battle_anims/functions.asm) diff --git a/constants/battle_constants.asm b/constants/battle_constants.asm index 621cde1..9bff323 100644 --- a/constants/battle_constants.asm +++ b/constants/battle_constants.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_MIST const SUBSTATUS_FOCUS_ENERGY - const_skip + const SUBSTATUS_UNDERWATER const SUBSTATUS_SUBSTITUTE const SUBSTATUS_RECHARGE const SUBSTATUS_RAGE diff --git a/constants/collision_constants.asm b/constants/collision_constants.asm index c683ff6..5bbdef0 100644 --- a/constants/collision_constants.asm +++ b/constants/collision_constants.asm @@ -10,6 +10,7 @@ DEF COLL_FLOOR EQU $00 DEF COLL_01 EQU $01 ; garbage DEF COLL_03 EQU $03 ; 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_CUT_08 EQU $08 ; 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_CUT_28 EQU $28 ; garbage 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_WATERFALL_RIGHT EQU $30 ; unused DEF COLL_WATERFALL_LEFT EQU $31 ; unused diff --git a/constants/item_constants.asm b/constants/item_constants.asm index 5d026d2..8adc55c 100644 --- a/constants/item_constants.asm +++ b/constants/item_constants.asm @@ -291,6 +291,12 @@ DEF HM01 EQU const_value add_hm FLASH ; f8 add_hm WHIRLPOOL ; f9 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 MACRO add_mt diff --git a/constants/menu_constants.asm b/constants/menu_constants.asm index 63b0f5d..45d3738 100644 --- a/constants/menu_constants.asm +++ b/constants/menu_constants.asm @@ -55,6 +55,11 @@ const MONMENUITEM_ROCKSMASH ; 12 const MONMENUITEM_MILKDRINK ; 13 const MONMENUITEM_SWEETSCENT ; 14 + const MONMENUITEM_UPROOT + const MONMENUITEM_WATER_SPORT + const MONMENUITEM_STRONG_ARM + const MONMENUITEM_BRIGHT_MOSS + const MONMENUITEM_WIND_RIDE ; options const MONMENUITEM_STATS ; 15 const MONMENUITEM_SWITCH ; 16 diff --git a/constants/move_effect_constants.asm b/constants/move_effect_constants.asm index a4dfd2a..f8e7921 100644 --- a/constants/move_effect_constants.asm +++ b/constants/move_effect_constants.asm @@ -158,4 +158,7 @@ const EFFECT_FLY const EFFECT_DEFENSE_CURL const EFFECT_COIN_HURL + const EFFECT_SURF + const EFFECT_WHIRLPOOL + const EFFECT_BOUNCE DEF NUM_MOVE_EFFECTS EQU const_value diff --git a/constants/sprite_constants.asm b/constants/sprite_constants.asm index d851509..e2f5dbb 100644 --- a/constants/sprite_constants.asm +++ b/constants/sprite_constants.asm @@ -145,6 +145,7 @@ const SPRITE_BALDING_GUY const SPRITE_GAMEBOY_GIRL const SPRITE_OVERWORLD_PIKACHU + const SPRITE_DIVE DEF NUM_OVERWORLD_SPRITES EQU const_value - 1 ; SpriteMons indexes (see data/sprites/sprite_mons.asm) diff --git a/constants/wram_constants.asm b/constants/wram_constants.asm index 6437d17..c5626fd 100644 --- a/constants/wram_constants.asm +++ b/constants/wram_constants.asm @@ -267,12 +267,13 @@ DEF REGISTERED_POCKET EQU %11000000 DEF REGISTERED_NUMBER EQU %00111111 ; wPlayerState:: -DEF PLAYER_NORMAL EQU 0 -DEF PLAYER_BIKE EQU 1 -DEF PLAYER_SKATE EQU 2 -DEF PLAYER_SURF EQU 4 -DEF PLAYER_SURF_PIKA EQU 8 -DEF PLAYER_RUN EQU 16 +DEF PLAYER_NORMAL EQU 0 +DEF PLAYER_BIKE EQU 1 +DEF PLAYER_SKATE EQU 2 +DEF PLAYER_SURF EQU 4 +DEF PLAYER_SURF_PIKA EQU 8 +DEF PLAYER_RUN EQU 16 +DEF PLAYER_WATER_SPORT EQU 16 ; wCelebiEvent:: DEF CELEBIEVENT_FOREST_IS_RESTLESS_F EQU 2 diff --git a/data/battle/effect_command_pointers.asm b/data/battle/effect_command_pointers.asm index 53ea3fd..63d611c 100644 --- a/data/battle/effect_command_pointers.asm +++ b/data/battle/effect_command_pointers.asm @@ -181,4 +181,5 @@ BattleCommandPointers: dw BattleCommand_StartLoop dw BattleCommand_Curl dw BattleCommand_CoinHurlPower + dw BattleCommand_DoubleUnderwaterDamage assert_table_length NUM_EFFECT_COMMANDS diff --git a/data/battle_anims/objects.asm b/data/battle_anims/objects.asm index e64f596..3040387 100644 --- a/data/battle_anims/objects.asm +++ b/data/battle_anims/objects.asm @@ -399,4 +399,6 @@ BattleAnimObjects: battleanimobj ABSOLUTE_X, $ff, BATTLEANIMFRAMESET_75, BATTLEANIMFUNC_COINHURL, PAL_BATTLE_OB_BROWN, ANIM_GFX_STATUS ; 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, $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 diff --git a/data/collision/collision_permissions.asm b/data/collision/collision_permissions.asm index 645ab3f..b726697 100644 --- a/data/collision/collision_permissions.asm +++ b/data/collision/collision_permissions.asm @@ -7,7 +7,7 @@ TileCollisionTable:: db LAND_TILE ; COLL_03 db LAND_TILE ; COLL_04 db LAND_TILE ; 05 - db LAND_TILE ; 06 + db WALL_TILE ; COLL_ROCKY_WALL db WALL_TILE ; COLL_WALL db LAND_TILE ; COLL_CUT_08 db LAND_TILE ; 09 @@ -43,8 +43,8 @@ TileCollisionTable:: db WALL_TILE ; COLL_BUOY db WATER_TILE ; COLL_CUT_28 db WATER_TILE ; COLL_WATER - db WATER_TILE | TALK ; 2a - db LAND_TILE ; COLL_ICE_2B + db WATERTILE | TALK ; COLL_DIVE_DOWN + db LANDTILE | TALK ; COLL_DIVE_UP db WATER_TILE | TALK ; COLL_WHIRLPOOL_2C db WATER_TILE ; 2d db WATER_TILE ; 2e diff --git a/data/items/attributes.asm b/data/items/attributes.asm index bc41826..5a2c59b 100644 --- a/data/items/attributes.asm +++ b/data/items/attributes.asm @@ -510,17 +510,17 @@ ItemAttributes: item_attribute 0, HELD_NONE, 0, CANT_SELECT | CANT_TOSS, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE ; HM07 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 -; $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 item_attribute $9999, HELD_NONE, 0, NO_LIMITS, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE assert_table_length $100 diff --git a/data/items/names.asm b/data/items/names.asm index 45c76b9..aaaecf3 100644 --- a/data/items/names.asm +++ b/data/items/names.asm @@ -252,11 +252,12 @@ ItemNames:: li "HM05" li "HM06" 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 - li "TERU-SAMA" - li "TERU-SAMA" - li "TERU-SAMA" - li "TERU-SAMA" - li "TERU-SAMA" li "?" assert_list_length $100 diff --git a/data/mon_menu.asm b/data/mon_menu.asm index dec1293..702fa4a 100644 --- a/data/mon_menu.asm +++ b/data/mon_menu.asm @@ -14,8 +14,13 @@ MonMenuOptions: dbbw MONMENU_FIELD_MOVE, MONMENUITEM_SOFTBOILED, SOFTBOILED dbbw MONMENU_FIELD_MOVE, MONMENUITEM_HEADBUTT, HEADBUTT 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_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 dbbw MONMENU_MENUOPTION, MONMENUITEM_STATS, .stats dbbw MONMENU_MENUOPTION, MONMENUITEM_SWITCH, .switch diff --git a/data/moves/animations.asm b/data/moves/animations.asm index bf45c11..f3f172c 100644 --- a/data/moves/animations.asm +++ b/data/moves/animations.asm @@ -291,7 +291,7 @@ BattleAnimations:: dw BattleAnim_Psybeam ; Synchronize dw BattleAnim_StrongArm dw BattleAnim_Uppercut - dw BattleAnim_WaterGun ; uhhh + dw BattleAnim_WaterSport dw BattleAnim_Wind_Ride ; Wind Ride but real dw BattleAnim_Flash ; Dazzling Gleam dw BattleAnim_Sing ; Disarming Voice @@ -5055,3 +5055,40 @@ BattleAnim_ShowMon_1: anim_incobj 1 anim_wait 1 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 diff --git a/data/moves/descriptions.asm b/data/moves/descriptions.asm index 8b43d4e..e647828 100644 --- a/data/moves/descriptions.asm +++ b/data/moves/descriptions.asm @@ -1324,8 +1324,8 @@ UppercutDescription: next "cause flinching.@" WaterSportDescription: - db "Lowers FIRE move" ; I really want to change this tbh - next "power.@" + db "Lowers FIRE move" + next "power to attack.@" DazzlingGleamDescription: db "Flashes a bright" diff --git a/data/moves/effects.asm b/data/moves/effects.asm index 57a3b59..26c9e00 100644 --- a/data/moves/effects.asm +++ b/data/moves/effects.asm @@ -2097,3 +2097,68 @@ CoinHurl: ; Identical to Return, except it calculates damage differently, and do checkfaint buildopponentrage 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 diff --git a/data/moves/effects_pointers.asm b/data/moves/effects_pointers.asm index 7661887..6248f73 100644 --- a/data/moves/effects_pointers.asm +++ b/data/moves/effects_pointers.asm @@ -159,4 +159,7 @@ MoveEffectsPointers: dw Fly dw DefenseCurl dw CoinHurl + dw Surf + dw Whirlpool + dw Bounce assert_table_length NUM_MOVE_EFFECTS diff --git a/data/moves/moves.asm b/data/moves/moves.asm index 9d26639..bd26838 100644 --- a/data/moves/moves.asm +++ b/data/moves/moves.asm @@ -74,7 +74,7 @@ Moves1: move EFFECT_MIST, 0, ICE, 100, 30, 0 ;MIST 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, 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, 120, ICE, 70, 5, 10 ;BLIZZARD 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_FUTURE_SIGHT, 80, PSYCHIC_TYPE, 90, 15, 0 ;FUTURE_SIGHT 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_FLINCH_HIT, 80, ROCK, 100, 15, 30 ;ROCK_HEAD move EFFECT_NORMAL_HIT, 140, ROCK, 70, 5, 0 ;ROCK_SLASH move EFFECT_NORMAL_HIT, 50, BUG, 100, 15, 0 ;CROSS_CUTTER move EFFECT_SP_ATK_DOWN, 0, NORMAL, 100, 40, 0 ;MEGAPHONE 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_COIN_HURL, 1, NORMAL, 100, 20, 0 ; COIN_HURL 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_ATTACK_UP_HIT, 70, STEEL, 90, 10, 10 ; STRONG_ARM 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, 80, FAIRY, 100, 10, 0 ; DAZZLING_GLEAM move EFFECT_ALWAYS_HIT, 40, FAIRY, 100, 15, 0 ; DISARMING_VOICE diff --git a/data/sprites/player_sprites.asm b/data/sprites/player_sprites.asm index 3555e33..4bab7f1 100644 --- a/data/sprites/player_sprites.asm +++ b/data/sprites/player_sprites.asm @@ -4,6 +4,7 @@ ChrisStateSprites: db PLAYER_SURF, SPRITE_SURF db PLAYER_SURF_PIKA, SPRITE_SURFING_PIKACHU db PLAYER_RUN, SPRITE_CHRIS_RUN + db PLAYER_WATER_SPORT, SPRITE_CHRIS_WATER_SPORT db -1 ; end KrisStateSprites: @@ -12,6 +13,7 @@ KrisStateSprites: db PLAYER_SURF, SPRITE_SURF db PLAYER_SURF_PIKA, SPRITE_SURFING_PIKACHU db PLAYER_RUN, SPRITE_KRIS_RUN + db PLAYER_WATER_SPORT, SPRITE_KRIS_WATER_SPORT db -1 ; end EnbyStateSprites: @@ -20,5 +22,6 @@ EnbyStateSprites: db PLAYER_SURF, SPRITE_SURF db PLAYER_SURF_PIKA, SPRITE_SURFING_PIKACHU db PLAYER_RUN, SPRITE_TOPAZ_RUN + db PLAYER_WATER_SPORT, SPRITE_TOPAZ_WATER_SPORT db -1 ; end \ No newline at end of file diff --git a/data/sprites/sprites.asm b/data/sprites/sprites.asm index c5c46c1..47b2197 100644 --- a/data/sprites/sprites.asm +++ b/data/sprites/sprites.asm @@ -150,4 +150,5 @@ OverworldSprites: overworld_sprite BaldingGuyGFX, 12, STANDING_SPRITE, PAL_OW_BROWN overworld_sprite GameboyGirlGFX, 12, STANDING_SPRITE, PAL_OW_RED overworld_sprite OverworldPikachuGFX, 12, STANDING_SPRITE, PAL_OW_BROWN + overworld_sprite WaterSportSpriteGFX, 12, WALKING_SPRITE, PAL_OW_BLUE assert_table_length NUM_OVERWORLD_SPRITES diff --git a/data/text/common_2.asm b/data/text/common_2.asm index b0fafff..0ad2fba 100644 --- a/data/text/common_2.asm +++ b/data/text/common_2.asm @@ -1502,8 +1502,6 @@ _OakText3:: text_promptbutton text_end - text_end ; unreferenced - _OakText4:: text "People and #MON" line "live together by" @@ -1528,3 +1526,62 @@ _OakText5:: para "That's why I study" line "#MON every day." 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 diff --git a/data/tilesets/cave_attributes.bin b/data/tilesets/cave_attributes.bin index 5e327a804d969dbbdf27db18302fc0b4117397f4..20ca69522f0510b7ff2b93a797bb17f01f5b7173 100644 GIT binary patch delta 14 WcmdnMeSv$!2G+?7Shyw%hyegAm<03y delta 7 Ocmcb>y@7kf237zK3IhB9 diff --git a/data/tilesets/cave_collision.asm b/data/tilesets/cave_collision.asm index 0ef5556..5120fd7 100644 --- a/data/tilesets/cave_collision.asm +++ b/data/tilesets/cave_collision.asm @@ -89,3 +89,5 @@ tilecoll FLOOR, WALL, FLOOR, WARP_CARPET_DOWN ; 58 tilecoll FLOOR, SWITCH, FLOOR, FLOOR ; 59 tilecoll WALL, FLOOR, FLOOR, WARP_CARPET_DOWN ; 5a + tilecoll FLOOR, FLOOR, ROCKY_WALL, WALL ; 5b + tilecoll FLOOR, FLOOR, WALL, ROCKY_WALL ; 5c diff --git a/data/tilesets/cave_metatiles.bin b/data/tilesets/cave_metatiles.bin index d4996cdedc07bc096cfbd2c5e3ae81947c38d63a..1bcf8a3c4cfee625e69c86d5912069c37fad6be9 100644 GIT binary patch delta 40 fcmdnMeSv$!237?zC~$OAQwt1IQ-kr<)F2`Nx}pd8 delta 7 Ocmcb>y@7kf237zK3IhB9 diff --git a/data/tilesets/dark_cave_attributes.bin b/data/tilesets/dark_cave_attributes.bin index 0c79ad384da5a94f33d34b68b01e2005a881c5f8..6cd8eeef520d34cf9910551f95e48e0b4c8140a8 100644 GIT binary patch delta 9 QcmZqRSirG>Wukxr01kWtmH+?% delta 6 NcmZ3$(ZI2Q1po(10o4Ei diff --git a/data/tilesets/dark_cave_collision.asm b/data/tilesets/dark_cave_collision.asm index 18f9b80..ccbf13b 100644 --- a/data/tilesets/dark_cave_collision.asm +++ b/data/tilesets/dark_cave_collision.asm @@ -62,3 +62,5 @@ tilecoll WATER, WATER, WATER, WATER ; 3d tilecoll WATER, WATER, WATER, WATER ; 3e tilecoll FLOOR, FLOOR, PIT, FLOOR ; 3f + tilecoll FLOOR, FLOOR, ROCKY_WALL, WALL ; 40 + tilecoll FLOOR, FLOOR, WALL, ROCKY_WALL ; 41 diff --git a/data/tilesets/dark_cave_metatiles.bin b/data/tilesets/dark_cave_metatiles.bin index a41b5b0..8033d27 100644 --- a/data/tilesets/dark_cave_metatiles.bin +++ b/data/tilesets/dark_cave_metatiles.bin @@ -3,4 +3,4 @@ &  &&67&&67&&&&$$$$*+:;$$$$"#23     ()89       !01     $$&&&&    @@@@@@@@@@@@@@@@%&&&%&&&%&&&%&&&&&&&&&&&&&&&&&&&&&&'&&&'&&&'&&&'67&&67&&$$%&&'%' &&&&&&&&  & 67'67&'&&&&&&&&&&&&%&&&&&&&&&&'&&&  -&&& \ No newline at end of file +&&&AB&&QR&&&&AB&&QR \ No newline at end of file diff --git a/data/tilesets/kanto_attributes.bin b/data/tilesets/kanto_attributes.bin index 3d972271369ec4ca2aadcd2dc4959efd685115db..2fcd8af216c0b9ccc1e2c6e44fb8f62f196f60c1 100644 GIT binary patch delta 24 Xcmca0{y==g1#SUWDB$H~Wd&gXO)3NG delta 7 OcmaDLenEW01#SQi*aK<+ diff --git a/data/tilesets/kanto_collision.asm b/data/tilesets/kanto_collision.asm index 34271e5..898894b 100644 --- a/data/tilesets/kanto_collision.asm +++ b/data/tilesets/kanto_collision.asm @@ -187,3 +187,4 @@ tilecoll WALL, WALL, WALL, WATER ; ba tilecoll WALL, WALL, WATER, WALL ; bb tilecoll WALL, HOP_DOWN_LEFT, WALL, WALL ; bc + tilecoll FLOOR, FLOOR, ROCKY_WALL, WALL ; bd diff --git a/data/tilesets/kanto_metatiles.bin b/data/tilesets/kanto_metatiles.bin index b75222ee14a1efac824b90379faade5968c5d5a1..1e6ef197d1f91a54aebc10f59969aae84733f92f 100644 GIT binary patch delta 24 acmca0{y==g1#SUBDB$BaHS8cw60!6jYH zytE6QdIF~3Sqj!Mu36-X!PLo`7?4&)u2iH|U2a)bo>$^k9*M0|@;*V(y2)&HfNOcgzk!!u0C zHb#wlgelpC_ENj*WI& k-%w?KQpCcO3__8t425?&b3;rYD}l6ly85}Sb4q9e0H)>`6951J literal 0 HcmV?d00001 diff --git a/gfx/tilesets/bubble/2.png b/gfx/tilesets/bubble/2.png new file mode 100644 index 0000000000000000000000000000000000000000..4e42dc9664b0b50e5099130253950b11545a6f1c GIT binary patch literal 90 zcmeAS@N?(olHy`uVBq!ia0vp^93adDBp6m-`S}edAhHit1XSVpp0ty#G3HAs`EtDnm{r-UW|jE){L literal 0 HcmV?d00001 diff --git a/gfx/tilesets/bubble/3.png b/gfx/tilesets/bubble/3.png new file mode 100644 index 0000000000000000000000000000000000000000..121b9db5c20ec0676f0ce5efcdfdc3b81a930176 GIT binary patch literal 86 zcmeAS@N?(olHy`uVBq!ia0vp^93adDBp6m-`S}e<$$GjthE&{2zVUxPW5>1YhHIjZ iPT1O&c-2cF`I;6(cNW**8&NE#APt_belF{r5}E+(dm9x1 literal 0 HcmV?d00001 diff --git a/gfx/tilesets/bubble/4.png b/gfx/tilesets/bubble/4.png new file mode 100644 index 0000000000000000000000000000000000000000..0720f8a5e773c30171fade1b53f67525f4ab1846 GIT binary patch literal 88 zcmeAS@N?(olHy`uVBq!ia0vp^93adDBp6m-`S}e<$$PpuhE&{2uGrp}_&u+!w326a km|@D=q=>CTM`mp0VrX*UYI5P)>I~B2>FVdQ&MBb@0ONxhyZ`_I literal 0 HcmV?d00001 diff --git a/gfx/tilesets/bubble/5.png b/gfx/tilesets/bubble/5.png new file mode 100644 index 0000000000000000000000000000000000000000..545fa4166429263095794881e63f13d28f3ce78f GIT binary patch literal 86 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 sz$J^4^H*Jb}YVcb=U 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 Ef)kr|v;Y7A diff --git a/gfx/tilesets/dark_cave.png b/gfx/tilesets/dark_cave.png index 1d0a91e5ef6e7c8e32f3b1397c7242226a1bc6e3..d5d954a9aa135a40388ce2d2bea74ce5eae75ec7 100644 GIT binary patch delta 2105 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 delta 3770 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 diff --git a/gfx/tilesets/johto_modern.png b/gfx/tilesets/johto_modern.png index ab4bcfbf0c50c13d6157e8dd76dd56ee871480e9..4d1d3647d2474183cf25c340e6a07aabecbf437c 100644 GIT binary patch delta 5068 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�t~SoZGyO z0-PkRUeHSC>nPa94lxm@jWc@A*?!GMJ&*h5{85<0%mHy_ZsAKhCKwBVu*!Len$+$v zNtI9V0q9{w2j9j}N!#irb>DeC@KN+d-}&`?b>DgQ&z$phm$qBGhc4$`Eb#J0ASmQP zNFw7jn2EjzZG*P5_Yz1AoH_d$*KEH#lbR46e}|zL#@tLBve{Ntd6SktfO-1vY^&ex z!D|0!f`ZUEa~A0l4YZqU9e94Vi-O4%lUkFzN_N^9feg(=R5G6Qmv4a4{_OBOU~lyX zfQqy;f8sxjg`X84K68*PK0G6!XL7Wlp6|>hNZqq` zjOC1-4&MMXUOobnv&pGwtLtZbyC8e?!m4w`Pl7HF5ACRL$rwg)xHoEN;T_5U4fNYA zxc5-tYsUaRWY@!JkKTRS>^7&YIPT6THI^BkiynD((5Jb#dg?%*>UNCQlO10(e{Oyb z&;`Rhoveb&ea1V9r9eDM>YA9^6Gu&O79~-qqAzW9GRaQ-+VE|lj=lTzG%w_iZCKf_ z>|R2+`K8b_sM9X#JD`saL4&rnE6gpv@+r&Mq7eskdlShXx@o&x1LxXyT;iYPKQAuPw@FR(64i#M@Ko=94D-+ zCv^_2Vb55#w~GB|fq0G8y!dd`Gt~L^uZ3F-4UZt0-HQSy-wQ?$jJ1_(j4hCQ9=g)4 zk$_B?EXIg*z5_vfh%BZDvWVDae{7!#&AIlZ zuGM~rTF^Q_!#%c)9bKB|hddwWb_`X9`JoE{M+>}y;4QR;a!zATpj-}%@4g43_fV`? zaxGM1{RY(i(3!q+ebM_xx^%NhfbUB zr;V!fv(Uw79>jB)qtzSxLZ`R@S#TW3H}p3F{SYtM6Ksb?+WJU45PfJJo*L i)sHgug52`kZ~q5`UsG5+0Z&T+0000SZthO?@yU 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 M07*qoM6N<$f@2@+2mk;8 diff --git a/gfx/tilesets/johto_palette_map.asm b/gfx/tilesets/johto_palette_map.asm index 7c52840..074a68a 100644 --- a/gfx/tilesets/johto_palette_map.asm +++ b/gfx/tilesets/johto_palette_map.asm @@ -9,11 +9,10 @@ tilepal 0, RED, BROWN, WATER, WATER, BROWN, GREEN, BROWN, BROWN tilepal 0, BROWN, WATER, GRAY, BROWN, BROWN, BROWN, GRAY, GRAY tilepal 0, BROWN, BROWN, BROWN, BROWN, BROWN, BROWN, BROWN, BROWN - tilepal 0, WATER, GRAY, GRAY, GRAY, BROWN, BROWN, GRAY, GRAY - tilepal 0, ROOF, ROOF, ROOF, ROOF, ROOF, ROOF, ROOF, ROOF - tilepal 0, ROOF, ROOF, ROOF, ROOF, ROOF, ROOF, ROOF, ROOF - tilepal 0, ROOF, ROOF, ROOF, ROOF, ROOF, ROOF, ROOF, ROOF - tilepal 0, ROOF, ROOF, ROOF, ROOF, ROOF, ROOF, ROOF, TEXT + tilepal 0, WATER, GRAY, GRAY, WATER, BROWN, BROWN, GRAY, GRAY +rept 16 + db $ff +endr 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, BROWN, BROWN, BROWN, BROWN diff --git a/gfx/tilesets/kanto.png b/gfx/tilesets/kanto.png index 0af15098531b2ce35a8207bc52b95f09db3e271f..1644ef83ef97cb6eb2af63734da7e9bb137df156 100644 GIT binary patch literal 5504 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 literal 2357 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 b0owipDMT#o+qTlg00000NkvXXu0mjfl>BQz diff --git a/gfx/tilesets/nihon_south.png b/gfx/tilesets/nihon_south.png index 6ddb7f4275a615915e18859eb6707ca92c2054a3..884e634cbbdcbd7f497a03a588e1666fefc874ce 100644 GIT binary patch literal 3551 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 delta 1432 zcmV;J1!wx-8=ec07=Ho)0002FcR#NH00m`9L_t(Y$L*9~OjCCh$4`M;scfaA7Z-Sd zLFl$N5t2Ua4`#Q8GGy5RZGZA-QAh;*L$W#xaNX4GW& zfs(?M0x8zX^u=OCW6daqLeRDL>~~wIn-8}yd*u9*o3!_HzklbP@9+G6fOvmX5QGmA zg>hs-S-d#L;@i{{L;!JlEEv2OUP(|luy`K0gm|%~r$^|;aq9N)h|dFKlrFR!J(E}w zQ^<2vp67wngmj*{=@eKIZkqePL6uEdG(H7FWehmD&=$Uj2{)~nHK+idRl24In6sjDRs((yWXnqE;#_ong=MpO`_`vPi&3pc%ko=V?2&Cz}Jg86kAUYG&Tat>P z5}%99x5%fJc%KLjzCpSDv?v;Qsh~R$t{bOt7CRP)oL+eTpf2|^rHZ}nNS%t)9*o_~_kVFt*JG9A^qKs2Mo#Qpj1nUZ30 z8qQa;KO)H?z=9!eR2&$-4z^udESfbV5|ULfj&>tP__#_ptaJf827V(b7w#7Qk}H0t zwjjpaHu$*#@1g18j6(o@#fB45Zy$QEqhAEfOlQ@L4a_80B%@CSzGDu)xIw)V>@FG26O;u-=?juwf5|4 zwiodcP?+-D)t0HsSS;pnIBYin%6w;aBdi7ySYHLjWZgHOB(PqRGdY{>HwhIS1dXse7p)MyGEHuiq|>&1JHpizdR zf&ww0-H~FO6V*(@Rt%7JWum$iZysjAs$yM*1(*aLYWTROz{X}o5nXNYW8o45WaBX- zrY@bziE2ztRM~z8cmbn+d|cLi9Dm}zaM;XqL_C6TYTm)bea*|Pi*2~kh8u-TZ4jO5 zweKrR)gY^4x3VDJ2n5DDPIsr?7ZUa2llb@dXN1Q6=9cUyf@ zUF`2XXPJ=z9-MAQH jmb67?Ds0i|dYEd)P%6wBv@D$`5TwJ?)z4*}Q$iB}&s7;< literal 0 HcmV?d00001 diff --git a/gfx/tilesets/seaweed/2.png b/gfx/tilesets/seaweed/2.png new file mode 100644 index 0000000000000000000000000000000000000000..a86a8a16f2dc03d7a30100278b14a085081c0cf7 GIT binary patch literal 90 zcmeAS@N?(olHy`uVBq!ia0vp^93adDBp6m-`S}eQjEnx?oJHr&dIz4a#+$GeH|GX zHuiJ>Nn{1`ISV`@iy0XBj({-ZRBb+KprB-lYeY$Kep*R+Vo@qXL1JcJiC$i6iGqoq zfu51!M}^F(Kt)lWE{-7<{>do`2|xIcL>ycdy83{L2O}4o*MXZAz6^|N8oj~`G#YMp z@^oxxnw=-0kmHn*p)sXX`oLeFLk_$eHCpY=91C`LT4;ax*}~T6!hYE0U`7=K6B`>t YxVYi}8;`$v18rgOboFyt=akR{0M1%P^8f$< literal 0 HcmV?d00001 diff --git a/home/flag.asm b/home/flag.asm index 243b0e0..bc323af 100644 --- a/home/flag.asm +++ b/home/flag.asm @@ -29,6 +29,12 @@ EventFlagAction:: call FlagAction ret +ResetDiveMap:: + xor a + ld [wDiveMapGroup], a + ld [wDiveMapNumber], a + ret + FlagAction:: ; Perform action b on bit de in flag array hl. diff --git a/home/hm_moves.asm b/home/hm_moves.asm index 3862a7a..d483031 100644 --- a/home/hm_moves.asm +++ b/home/hm_moves.asm @@ -25,4 +25,9 @@ IsHMMove:: dw FLASH dw WATERFALL 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 diff --git a/home/map_objects.asm b/home/map_objects.asm index 9bd0377..e54d740 100644 --- a/home/map_objects.asm +++ b/home/map_objects.asm @@ -159,8 +159,6 @@ CheckPitTile:: CheckIceTile:: cp COLL_ICE ret z - cp COLL_ICE_2B - ret z scf ret @@ -173,6 +171,12 @@ CheckWhirlpoolTile:: scf ret +CheckDiveTile:: + cp COLL_DIVE_UP + ret z + cp COLL_DIVE_DOWN + ret + CheckWaterfallTile:: cp COLL_WATERFALL ret z @@ -563,3 +567,7 @@ GetSpriteDirection:: ld a, [hl] maskbits NUM_DIRECTIONS, 2 ret + +CheckRockyWallTile:: + cp COLL_ROCKY_WALL + ret diff --git a/macros/scripts/battle_commands.asm b/macros/scripts/battle_commands.asm index e023b72..59a50b9 100644 --- a/macros/scripts/battle_commands.asm +++ b/macros/scripts/battle_commands.asm @@ -181,6 +181,7 @@ ENDM command startloop ; ae command curl ; af command coinhurlpower + command doubleunderwaterdamage DEF NUM_EFFECT_COMMANDS EQU const_value - 1 const_def -1, -1 diff --git a/macros/scripts/events.asm b/macros/scripts/events.asm index 182f4d8..104fef5 100644 --- a/macros/scripts/events.asm +++ b/macros/scripts/events.asm @@ -1054,6 +1054,30 @@ MACRO getname db \1 ; memory 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 MACRO wait db wait_command diff --git a/maps/CinnabarIsland.ablk b/maps/CinnabarIsland.ablk index 09ec62e..8923029 100644 --- a/maps/CinnabarIsland.ablk +++ b/maps/CinnabarIsland.ablk @@ -1,2 +1,2 @@ -”dbQQ>???;”dN>?,,“µ)”dN$W*,¶·)”dN1(,,,)”dP\Ž*,)”d{{y|r(,)”-{ -{t(,)”C-$W%˜™™™™™™™™™ \ No newline at end of file +”dbQQ>>??;”dN>?,(“µ)”dN$½*(¶·)”dN1($W½%”dP\Ž*,)”d{{y|r(,)”-{ +{t(,)”C-$½%˜™™™™™™™™™ \ No newline at end of file diff --git a/maps/DebugRoom.asm b/maps/DebugRoom.asm index fb3a5a0..03e5f74 100644 --- a/maps/DebugRoom.asm +++ b/maps/DebugRoom.asm @@ -8,12 +8,12 @@ DebugRoom_MapScripts: DebugPokemon1Script: opentext - getmonname STRING_BUFFER_3, COATL + getmonname STRING_BUFFER_3, MACHAMP writetext ReceivedDebugPokemonText playsound SFX_CAUGHT_MON waitsfx promptbutton - givepoke COATL, 65, TM_ROCK_SMASH + givepoke MACHAMP, 65, TM_ROCK_SMASH closetext end @@ -211,6 +211,7 @@ DebugItemScript: giveitem HELIX_FOSSIL, 2 giveitem OLD_AMBER, 2 giveitem COIN_CASE + giveitem HM_STRONG_ARM givecoins 2500 closetext end @@ -409,7 +410,7 @@ DebugRoom_MapEvents: warp_event 23, 14, PLAYERS_HOUSE_1F, 1 warp_event 3, 20, SILENT_HILLS, 1 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 4, 9, SUMMER_BEACH_HOUSE, 1 ; left lab/league warp warp_event 5, 9, BLUE_FOREST, 1 ; right lab/league warp diff --git a/maps/RockTunnelB1F.ablk b/maps/RockTunnelB1F.ablk index 8c2a3e4..6e926f3 100644 --- a/maps/RockTunnelB1F.ablk +++ b/maps/RockTunnelB1F.ablk @@ -12,5 +12,5 @@ )++ !" (*! +  -  *  +  A*  (!)+  \ No newline at end of file diff --git a/maps/SilverCaveRoom2.ablk b/maps/SilverCaveRoom2.ablk index 19e352b..21ff169 100644 --- a/maps/SilverCaveRoom2.ablk +++ b/maps/SilverCaveRoom2.ablk @@ -19,8 +19,8 @@ )-..7. - -/'' - - + \- -  -     *-./ + \    \*-./ -/,,,-/$$$$-./ %)$$$$ # \ No newline at end of file diff --git a/ram/wram.asm b/ram/wram.asm index 5d4b7a0..826d003 100644 --- a/ram/wram.asm +++ b/ram/wram.asm @@ -387,7 +387,7 @@ wAttackMissed:: wPlayerSubStatus1:: db wPlayerSubStatus2:: db wPlayerSubStatus3:: db -wPlayerSubStatus4:: db +wPlayerSubStatus4:: db ; bit 3 is underwater now wPlayerSubStatus5:: db wEnemySubStatus1:: db @@ -3291,7 +3291,10 @@ wBackupWarpNumber:: db wBackupMapGroup:: db wBackupMapNumber:: db - ds 3 +wDiveMapGroup:: db +wDiveMapNumber:: db +wDiveDeltaX:: db +wDiveDeltaY:: db wLastSpawnMapGroup:: db wLastSpawnMapNumber:: db