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)
This commit is contained in:
Llinos Evans 2024-12-28 06:26:01 +00:00
parent 4b11121836
commit 093bda0253
77 changed files with 993 additions and 97 deletions

View file

@ -181,4 +181,5 @@ BattleCommandPointers:
dw BattleCommand_StartLoop
dw BattleCommand_Curl
dw BattleCommand_CoinHurlPower
dw BattleCommand_DoubleUnderwaterDamage
assert_table_length NUM_EFFECT_COMMANDS

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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"

View file

@ -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

View file

@ -159,4 +159,7 @@ MoveEffectsPointers:
dw Fly
dw DefenseCurl
dw CoinHurl
dw Surf
dw Whirlpool
dw Bounce
assert_table_length NUM_MOVE_EFFECTS

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

Binary file not shown.

View file

@ -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

Binary file not shown.

View file

@ -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

View file

@ -3,4 +3,4 @@
&  &&67&&67&&&&$$$$*+:;$$$$"#23     ()89       !01     $$&&&&    @@@@@@@@@@@@@@@@%&&&%&&&%&&&%&&&&&&&&&&&&&&&&&&&&&&'&&&'&&&'&&&'67&&67&&$$%&&'%' &&&&&&&& 
&
67'67&'&&&&&&&&&&&&%&&&&&&&&&&'&&& 
&&&
&&&AB&&QR&&&&AB&&QR

Binary file not shown.

View file

@ -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

Binary file not shown.