Finished Stevens event. Added Fast walking
This commit is contained in:
commit
552fe79762
28 files changed
+489
-67
No files matched your search
@@ -732,6 +732,12 @@
|
||||
.elseif \type == TRAINER_BATTLE_HILL
|
||||
.4byte \pointer1 @ text
|
||||
.4byte \pointer2 @ text
|
||||
.elseif \type == TRAINER_BATTLE_NO_WHITEOUT_CONTINUE_SCRIPT
|
||||
.4byte \pointer1 @ text
|
||||
.4byte \pointer2 @ text
|
||||
.4byte \pointer3 @ event script
|
||||
.elseif \type == TRAINER_BATTLE_NO_INTRO_NO_WHITEOUT
|
||||
.4byte \pointer1 @ text
|
||||
.endif
|
||||
.endm
|
||||
|
||||
@@ -776,6 +782,16 @@
|
||||
trainerbattle TRAINER_BATTLE_SINGLE_NO_INTRO_TEXT, \trainer, 0, \lose_text
|
||||
.endm
|
||||
|
||||
@ Starts a single trainer battle. Takes a trainer, intro text, loss text, and an event script which continues after the battle,regardless of the result.
|
||||
@ When used with an event script, you can also pass in an optional flag to disable music
|
||||
.macro trainerbattle_no_whiteout_continue_script trainer:req, intro_text:req, lose_text:req, event_script:req
|
||||
trainerbattle TRAINER_BATTLE_NO_WHITEOUT_CONTINUE_SCRIPT, \trainer, 0, \intro_text, \lose_text, \event_script
|
||||
.endm
|
||||
|
||||
@ Starts a trainer battle, skipping intro text. Takes a trainer and loss text. Does not warp the player to last heal location if they lose.
|
||||
.macro trainerbattle_no_intro_no_whiteout trainer:req, lose_text:req
|
||||
trainerbattle TRAINER_BATTLE_NO_INTRO_NO_WHITEOUT, \trainer, 0, \lose_text
|
||||
.endm
|
||||
|
||||
@ Starts a trainer battle using the battle information stored in RAM (usually by the scripts in trainer_battle.inc, which
|
||||
@ are run by trainerbattle), and blocks script execution until the battle finishes.
|
||||
|
||||
@@ -6,6 +6,7 @@
|
||||
#include "constants/battle_arena.h"
|
||||
#include "constants/battle_script_commands.h"
|
||||
#include "constants/battle_anim.h"
|
||||
#include "constants/battle_setup.h"
|
||||
#include "constants/battle_string_ids.h"
|
||||
#include "constants/abilities.h"
|
||||
#include "constants/hold_effects.h"
|
||||
@@ -6554,12 +6555,19 @@ BattleScript_LocalBattleLostEnd::
|
||||
.else
|
||||
printstring STRINGID_PLAYERWHITEOUT
|
||||
waitmessage B_WAIT_TIME_LONG
|
||||
jumpifhalfword CMP_EQUAL, gTrainerBattleMode, TRAINER_BATTLE_NO_WHITEOUT_CONTINUE_SCRIPT, BattleScript_LocalBattleLostPrintNoWhiteout
|
||||
jumpifhalfword CMP_EQUAL, gTrainerBattleMode, TRAINER_BATTLE_NO_INTRO_NO_WHITEOUT, BattleScript_LocalBattleLostPrintNoWhiteout
|
||||
printstring STRINGID_PLAYERWHITEOUT2
|
||||
waitmessage B_WAIT_TIME_LONG
|
||||
BattleScript_LocalBattleLostEnd::
|
||||
end2
|
||||
.endif
|
||||
|
||||
BattleScript_LocalBattleLostPrintNoWhiteout::
|
||||
printstring STRINGID_PLAYERWHITEOUT3
|
||||
waitmessage B_WAIT_TIME_LONG
|
||||
end2
|
||||
|
||||
BattleScript_CheckDomeDrew::
|
||||
jumpifbyte CMP_EQUAL, gBattleOutcome, B_OUTCOME_DREW, BattleScript_LocalBattleLostEnd_
|
||||
BattleScript_LocalBattleLostPrintTrainersWinText::
|
||||
|
||||
@@ -1084,3 +1084,5 @@ Common_EventScript_LegendaryFlewAway::
|
||||
.include "data/maps/GraniteCave_B3F/scripts.inc"
|
||||
|
||||
.include "data/maps/GraniteCave_B4F/scripts.inc"
|
||||
|
||||
.include "data/maps/GraniteCave_B4FNorth/scripts.inc"
|
||||
@@ -1,5 +1,5 @@
|
||||
222222222BBBBBBBBBBBB222BBBB22222BBB22BBBBB2222222'22222BBB222BBB22222222222222BBB22BBB22222!B!B!B!B!B!B!B!B!B!BBBB222BBB222222!!
|
||||
BBBBBLRR222BBB22222RROBBBBB222BBB222222BBBBBBBB22B22222BB222BBB!B
|
||||
222222BB2222VW2B?BBB2!B!B!B
|
||||
2BB2222VW2BBBBBBB2B?BB2BB2222VW2BBBBBB2BB22222BB222222BB2222222B2222222222222222222B2222222222222222222!!!22!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B"22!!!222B>BBBBBBBBBBB22222BBBBBBBBBBBB'2222222222222222"22222222"""""""""""""222222222""""""""""""22222222"""""""""""22222222"'"""""""""""2!2!2
|
||||
RRRRRRRR?RBBBBBBBBBBBBRRRBBBB22222BBBRRBBBBB2222222'22222BBBRRRBBB22222222222222BBBRRBBB22222!B!B!B!B!B!B!B!B!B!BBBBRRRBBB222222!!
|
||||
BBBBBLRRRRRBBB22222RROBBBBBRRRBBB222222BBBBBBBBRRB22222BBRRRBBB!B
|
||||
222222BB2222VW2B?BBB2!B!B!B
|
||||
2BB2222VW2BBBBBBB2B?BB2BB2222VW2BBBBBB2BB22222BB222222BB2222222B2222222222222222222B2222222222222222222!!!22!B!B!B!B!B!B!B!B!B!B!B!B!B!B!B"22!!!222B>BBBBBBBBBBB22222BBBBBBBBBBBB'22222222222222"2'222222"""""""""""""222222222""""""""""""22222222"""""""""""22222222"'"""""""""""2!2!2
|
||||
2222"""""""""""222222"""""""Y""!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||
@@ -1 +1 @@
|
||||
�����2<2�����<222�����2P<22�����2<22>2�����<22<2<2�����2>22�����222<2�����22<2�B�B�B�B�Bf2<�B�B�B�B�B<2
|
||||
�����22�����222�����2P22�����222>2�����2222�����2>22�����2222�����222�B�B�B�B�Bf2�B�B�B�B�B2
|
||||
@@ -0,0 +1 @@
|
||||
|
||||
@@ -0,0 +1,4 @@
|
||||
2222222222222222222222222222222222 B B
|
||||
2222 B
|
||||
22BB2222B B
|
||||
2BB2222BB2BB2222B B B BBB2222BBBBBB'2222222=222222222222222222222222222222222 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
|
||||
@@ -4530,6 +4530,16 @@
|
||||
"secondary_tileset": "gTileset_Cave",
|
||||
"border_filepath": "data/layouts/GraniteCave_B4F/border.bin",
|
||||
"blockdata_filepath": "data/layouts/GraniteCave_B4F/map.bin"
|
||||
},
|
||||
{
|
||||
"id": "LAYOUT_GRANITE_CAVE_B4FNORTH",
|
||||
"name": "GraniteCave_B4FNorth_Layout",
|
||||
"width": 15,
|
||||
"height": 15,
|
||||
"primary_tileset": "gTileset_General",
|
||||
"secondary_tileset": "gTileset_Cave",
|
||||
"border_filepath": "data/layouts/GraniteCave_B4FNorth/border.bin",
|
||||
"blockdata_filepath": "data/layouts/GraniteCave_B4FNorth/map.bin"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -64,7 +64,7 @@
|
||||
"trainer_type": "TRAINER_TYPE_NONE",
|
||||
"trainer_sight_or_berry_tree_id": "0",
|
||||
"script": "NULL",
|
||||
"flag": "0"
|
||||
"flag": "FLAG_STEVENS_CAVE_AGRON"
|
||||
},
|
||||
{
|
||||
"graphics_id": "OBJ_EVENT_GFX_LAIRON",
|
||||
@@ -77,7 +77,7 @@
|
||||
"trainer_type": "TRAINER_TYPE_NONE",
|
||||
"trainer_sight_or_berry_tree_id": "0",
|
||||
"script": "NULL",
|
||||
"flag": "0"
|
||||
"flag": "FLAG_STEVENS_CAVE_AGRON"
|
||||
},
|
||||
{
|
||||
"graphics_id": "OBJ_EVENT_GFX_ARON",
|
||||
@@ -104,6 +104,19 @@
|
||||
"trainer_sight_or_berry_tree_id": "0",
|
||||
"script": "EventScript_StrengthBoulder",
|
||||
"flag": "FLAG_TEMP_11"
|
||||
},
|
||||
{
|
||||
"graphics_id": "OBJ_EVENT_GFX_PUSHABLE_BOULDER",
|
||||
"x": 2,
|
||||
"y": 11,
|
||||
"elevation": 0,
|
||||
"movement_type": "MOVEMENT_TYPE_LOOK_AROUND",
|
||||
"movement_range_x": 0,
|
||||
"movement_range_y": 0,
|
||||
"trainer_type": "TRAINER_TYPE_NONE",
|
||||
"trainer_sight_or_berry_tree_id": "0",
|
||||
"script": "EventScript_StrengthBoulder",
|
||||
"flag": "FLAG_TEMP_12"
|
||||
}
|
||||
],
|
||||
"warp_events": [
|
||||
@@ -134,6 +147,13 @@
|
||||
"elevation": 0,
|
||||
"dest_map": "MAP_GRANITE_CAVE_B3F",
|
||||
"dest_warp_id": "0"
|
||||
},
|
||||
{
|
||||
"x": 5,
|
||||
"y": 2,
|
||||
"elevation": 0,
|
||||
"dest_map": "MAP_GRANITE_CAVE_B3F",
|
||||
"dest_warp_id": "0"
|
||||
}
|
||||
],
|
||||
"coord_events": [
|
||||
@@ -145,6 +165,33 @@
|
||||
"var": "VAR_GRANITECAVE_AGGRON",
|
||||
"var_value": "1",
|
||||
"script": "GraniteCave_B3F_EventScript_Agron"
|
||||
},
|
||||
{
|
||||
"type": "trigger",
|
||||
"x": 5,
|
||||
"y": 22,
|
||||
"elevation": 0,
|
||||
"var": "VAR_GRANITECAVE_AGGRON",
|
||||
"var_value": "0",
|
||||
"script": "GraniteCave_B3F_EventScript_CheckOnSteven"
|
||||
},
|
||||
{
|
||||
"type": "trigger",
|
||||
"x": 16,
|
||||
"y": 23,
|
||||
"elevation": 0,
|
||||
"var": "VAR_GRANITECAVE_AGGRON",
|
||||
"var_value": "0",
|
||||
"script": "GraniteCave_B3F_EventScript_WhatDidHeFind"
|
||||
},
|
||||
{
|
||||
"type": "trigger",
|
||||
"x": 15,
|
||||
"y": 20,
|
||||
"elevation": 0,
|
||||
"var": "VAR_GRANITECAVE_AGGRON",
|
||||
"var_value": "3",
|
||||
"script": "GraniteCave_B3F_EventScript_CompletedScript"
|
||||
}
|
||||
],
|
||||
"bg_events": [
|
||||
|
||||
@@ -3,15 +3,48 @@ GraniteCave_B3F_MapScripts::
|
||||
//map_script MAP_SCRIPT_ON_TRANSITION, GraniteCave_B3F_OnTransition
|
||||
.byte 0
|
||||
|
||||
GraniteCave_B3F_EventScript_CheckOnSteven::
|
||||
msgbox GraniteCave_B3F_Text_CheckOnSteven, MSGBOX_NPC
|
||||
applymovement OBJ_EVENT_ID_PLAYER, GraniteCave_B3F_Movement_WalkDown
|
||||
end
|
||||
|
||||
GraniteCave_B3F_EventScript_WhatDidHeFind::
|
||||
msgbox GraniteCave_B3F_Text_WhatDidHeFind, MSGBOX_NPC
|
||||
applymovement OBJ_EVENT_ID_PLAYER, GraniteCave_B3F_Movement_WalkDown
|
||||
end
|
||||
|
||||
GraniteCave_B3F_Text_WhatDidHeFind:
|
||||
.string "I should see what STEVEN found$"
|
||||
|
||||
GraniteCave_B3F_Text_CheckOnSteven:
|
||||
.string "STEVEN: Just a second, we should come up\n"
|
||||
.string "with a plan.$"
|
||||
|
||||
GraniteCave_B3F_Movement_WalkDown:
|
||||
walk_down
|
||||
step_end
|
||||
|
||||
|
||||
GraniteCave_B3F_Fell::
|
||||
goto_if_unset FLAG_STEVENS_CAVE_DUGDEEPER, GraniteCave_B3F_EventScript_DugDeeper
|
||||
goto_if_eq VAR_GRANITECAVE_AGGRON, 0, GraniteCave_B3F_EventScript_StayAndStudy
|
||||
goto_if_eq VAR_GRANITECAVE_AGGRON, 9, GraniteCave_B3F_EventScript_StayAndStudy
|
||||
goto_if_eq VAR_GRANITECAVE_AGGRON, 3, GraniteCave_B3F_Exit
|
||||
msgbox GraniteCave_B3F_Text_FindAnything, MSGBOX_NPC
|
||||
end
|
||||
|
||||
GraniteCave_B3F_Exit::
|
||||
msgbox GraniteCave_B3F_Text_ExitThatWay, MSGBOX_NPC
|
||||
end
|
||||
|
||||
GraniteCave_B3F_Movement_LookUp:
|
||||
face_up
|
||||
step_end
|
||||
|
||||
GraniteCave_B3F_Movement_LookRight:
|
||||
face_right
|
||||
step_end
|
||||
|
||||
GraniteCave_B3F_Text_FindAnything:
|
||||
.string "I haven't found anything yet...\n"
|
||||
.string "If I do, I will find you.$"
|
||||
@@ -24,7 +57,9 @@ GraniteCave_B3F_Text_DugDeeper:
|
||||
.string "Well this is unexpected. We've seen to\n"
|
||||
.string "gone even deeper into this cave.\p"
|
||||
.string "At least there seems to be a path to\n"
|
||||
.string "continue moving on.\p"
|
||||
.string "continue moving forward.\p"
|
||||
.string "I wonder what could have caused that\n"
|
||||
.string "earthquake.\p"
|
||||
.string "I am going to explore this section with\n"
|
||||
.string "Baltoy and see if we can find any other\l"
|
||||
.string "path back up.\p"
|
||||
@@ -41,8 +76,6 @@ GraniteCave_B3F_EventScript_DugDeeper::
|
||||
waitse
|
||||
msgbox GraniteCave_B3F_Text_DugDeeper, MSGBOX_NPC
|
||||
setvar VAR_GRANITECAVE_AGGRON, 1
|
||||
givemon SPECIES_MUDKIP, 25, ITEM_NONE
|
||||
animateflash 1
|
||||
end
|
||||
|
||||
GraniteCave_B3F_Trigger_Agron::
|
||||
@@ -99,7 +132,9 @@ GraniteCave_B3F_Movement_StevenRun:
|
||||
face_left
|
||||
delay_16
|
||||
lock_facing_direction
|
||||
delay_16
|
||||
walk_right
|
||||
unlock_facing_direction
|
||||
step_end
|
||||
|
||||
GraniteCave_B3F_Movement_FaceDown:
|
||||
@@ -115,7 +150,7 @@ GraniteCave_B3F_Text_AggronAttack:
|
||||
.string "STEVEN: I'll deal with this one!$"
|
||||
|
||||
GraniteCave_B3F_Text_LaironAttack:
|
||||
.string "LARION charges$"
|
||||
.string "LARION charges!$"
|
||||
|
||||
GraniteCave_B3F_EventScript_Agron::
|
||||
lock
|
||||
@@ -172,22 +207,119 @@ GraniteCave_B3F_EventScript_Agron::
|
||||
waitmovement 0
|
||||
//applymovement 4, GraniteCave_B3F_Movement_WalkRight
|
||||
//waitmovement 0
|
||||
msgbox GraniteCave_B3F_Text_AggronAttack, MSGBOX_NPC
|
||||
applymovement OBJ_EVENT_ID_PLAYER, GraniteCave_B3F_Movement_FaceDown
|
||||
waitmovement 0
|
||||
msgbox GraniteCave_B3F_Text_AggronAttack, MSGBOX_DEFAULT
|
||||
|
||||
//Start Battle
|
||||
msgbox GraniteCave_B3F_Text_LaironAttack, MSGBOX_NPC
|
||||
delay 32
|
||||
msgbox GraniteCave_B3F_Text_LaironAttack, MSGBOX_DEFAULT
|
||||
special LaironBattle
|
||||
waitstate
|
||||
//setwildbattle SPECIES_LAIRON, 18
|
||||
//dowildbattle
|
||||
//specialvar VAR_RESULT, GetBattleOutcome
|
||||
//goto_if_eq VAR_RESULT, B_OUTCOME_WON, SkyPillar_Top_EventScript_DefeatedRayquaza
|
||||
//goto_if_eq VAR_RESULT, B_OUTCOME_RAN, SkyPillar_Top_EventScript_RanFromRayquaza
|
||||
//goto_if_eq VAR_RESULT, B_OUTCOME_PLAYER_TELEPORTED, SkyPillar_Top_EventScript_RanFromRayquaza
|
||||
release
|
||||
showfollower
|
||||
//remove the pokemon
|
||||
removeobject 4
|
||||
removeobject 5
|
||||
setvar VAR_GRANITECAVE_AGGRON, 0
|
||||
setflag FLAG_STEVENS_CAVE_AGRON
|
||||
|
||||
specialvar VAR_RESULT, GetBattleOutcome
|
||||
playbgm MUS_PETALBURG_WOODS, TRUE
|
||||
applymovement 1, GraniteCave_B3F_Movement_LookRight
|
||||
goto_if_eq VAR_RESULT, B_OUTCOME_WON, GraniteCave_B3F_EventScript_AgronDefeated
|
||||
goto_if_eq VAR_RESULT, B_OUTCOME_LOST, GraniteCave_B3F_EventScript_PlayerDefeated
|
||||
//goto_if_eq VAR_RESULT, B_OUTCOME_PLAYER_TELEPORTED, SkyPillar_Top_EventScript_RanFromRayquaza.
|
||||
release
|
||||
end
|
||||
|
||||
GraniteCave_B3F_Text_AgronDefeated:
|
||||
.string "STEVEN: That was a close one, but that\n"
|
||||
.string "LARION was no match for you.\l"
|
||||
.string "Here, let me heal your POKéMON.$"
|
||||
|
||||
GraniteCave_B3F_EventScript_AgronDefeated::
|
||||
msgbox GraniteCave_B3F_Text_AgronDefeated, MSGBOX_NPC
|
||||
goto GraniteCave_B3F_EventScript_ShinyRock
|
||||
end
|
||||
|
||||
GraniteCave_B3F_Text_PlayerDefeated:
|
||||
.string "STEVEN: That was a close one. The LARION\n"
|
||||
.string "ran off after the AGGRON did.\p"
|
||||
.string "Here, let me heal your POKéMON$"
|
||||
|
||||
GraniteCave_B3F_EventScript_PlayerDefeated::
|
||||
msgbox GraniteCave_B3F_Text_PlayerDefeated, MSGBOX_NPC
|
||||
goto GraniteCave_B3F_EventScript_ShinyRock
|
||||
end
|
||||
|
||||
GraniteCave_B3F_Text_MetangFlash:
|
||||
.string "STEVEN: METANG, use Flash!$"
|
||||
|
||||
GraniteCave_B3F_Text_ShinyRock:
|
||||
.string "STEVEN: What's that over there?$"
|
||||
|
||||
GraniteCave_B3F_Movement_GoToStone:
|
||||
walk_left
|
||||
walk_down
|
||||
walk_down
|
||||
walk_down
|
||||
walk_down
|
||||
step_end
|
||||
|
||||
GraniteCave_B3F_EventScript_ShinyRock::
|
||||
lock
|
||||
special HealPlayerParty
|
||||
playse SE_USE_ITEM
|
||||
waitse
|
||||
applymovement 1, GraniteCave_B3F_Movement_FaceDown
|
||||
waitmovement 0
|
||||
msgbox GraniteCave_B3F_Text_MetangFlash, MSGBOX_DEFAULT
|
||||
delay 32
|
||||
animateflash 1
|
||||
delay 32
|
||||
playse SE_PIN
|
||||
applymovement 1, Common_Movement_ExclamationMark
|
||||
waitmovement 0
|
||||
msgbox GraniteCave_B3F_Text_ShinyRock, MSGBOX_DEFAULT
|
||||
applymovement 1, GraniteCave_B3F_Movement_GoToStone
|
||||
waitmovement 0
|
||||
release
|
||||
releaseall
|
||||
end
|
||||
|
||||
GraniteCave_B3F_Text_StayAndStudy:
|
||||
.string "STEVEN: Look at that brilliant shimmer.\n"
|
||||
.string "I wonder if this could be...\p"
|
||||
.string "Thank you for you help {PLAYER}.\n"
|
||||
.string "I will stay here and investiage this\l"
|
||||
.string "odd stone.\p"
|
||||
.string "Oh! You had a letter for me?$"
|
||||
|
||||
GraniteCave_B3F_Text_ExitThatWay:
|
||||
.string "I feel a faint breeze coming from over\n"
|
||||
.string "there. I think the exit is that way.$"
|
||||
|
||||
GraniteCave_B3F_EventScript_StayAndStudy::
|
||||
msgbox GraniteCave_B3F_Text_StayAndStudy, MSGBOX_NPC
|
||||
setvar VAR_0x8004, ITEM_LETTER
|
||||
call Common_EventScript_PlayerHandedOverTheItem
|
||||
setflag FLAG_DELIVERED_STEVEN_LETTER
|
||||
msgbox GraniteCave_StevensRoom_Text_ThankYouTakeThis, MSGBOX_DEFAULT
|
||||
giveitem ITEM_TM47
|
||||
call_if_eq VAR_RESULT, FALSE, GraniteCave_StevensRoom_EventScript_BagFull
|
||||
msgbox GraniteCave_StevensRoom_Text_CouldBecomeChampionLetsRegister, MSGBOX_DEFAULT
|
||||
closemessage
|
||||
delay 30
|
||||
playfanfare MUS_REGISTER_MATCH_CALL
|
||||
msgbox GraniteCave_StevensRoom_Text_RegisteredSteven, MSGBOX_DEFAULT
|
||||
waitfanfare
|
||||
closemessage
|
||||
delay 30
|
||||
setflag FLAG_REGISTERED_STEVEN_POKENAV
|
||||
msgbox GraniteCave_B3F_Text_ExitThatWay, MSGBOX_NPC
|
||||
setvar VAR_GRANITECAVE_AGGRON, 3
|
||||
end
|
||||
|
||||
GraniteCave_B3F_EventScript_CompletedScript::
|
||||
setvar VAR_GRANITECAVE_AGGRON, 9
|
||||
end
|
||||
@@ -0,0 +1,40 @@
|
||||
{
|
||||
"id": "MAP_GRANITE_CAVE_B4FNORTH",
|
||||
"name": "GraniteCave_B4FNorth",
|
||||
"layout": "LAYOUT_GRANITE_CAVE_B4FNORTH",
|
||||
"music": "MUS_PETALBURG_WOODS",
|
||||
"region_map_section": "MAPSEC_GRANITE_CAVE",
|
||||
"requires_flash": false,
|
||||
"weather": "WEATHER_NONE",
|
||||
"map_type": "MAP_TYPE_UNDERGROUND",
|
||||
"allow_cycling": true,
|
||||
"allow_escaping": false,
|
||||
"allow_running": true,
|
||||
"show_map_name": false,
|
||||
"battle_scene": "MAP_BATTLE_SCENE_NORMAL",
|
||||
"connections": 0,
|
||||
"object_events": [
|
||||
{
|
||||
"graphics_id": "OBJ_EVENT_GFX_ITEM_BALL",
|
||||
"x": 9,
|
||||
"y": 4,
|
||||
"elevation": 0,
|
||||
"movement_type": "MOVEMENT_TYPE_NONE",
|
||||
"movement_range_x": 0,
|
||||
"movement_range_y": 0,
|
||||
"trainer_type": "TRAINER_TYPE_NONE",
|
||||
"trainer_sight_or_berry_tree_id": "0",
|
||||
"script": "GraniteCave_B4FNorth_EventScript_ItemMasterBall",
|
||||
"flag": "FLAG_ITEM_GRANITE_CAVE_4FNORTH_MASTERBALL"
|
||||
}
|
||||
],
|
||||
"warp_events": [
|
||||
|
||||
],
|
||||
"coord_events": [
|
||||
|
||||
],
|
||||
"bg_events": [
|
||||
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,2 @@
|
||||
GraniteCave_B4FNorth_MapScripts::
|
||||
.byte 0
|
||||
@@ -10,20 +10,20 @@ GraniteCave_StevensRoom_EventScript_Steven::
|
||||
//setvar VAR_0x8004, ITEM_LETTER
|
||||
//call Common_EventScript_PlayerHandedOverTheItem
|
||||
//setflag FLAG_DELIVERED_STEVEN_LETTER
|
||||
msgbox GraniteCave_StevensRoom_Text_ThankYouTakeThis, MSGBOX_DEFAULT
|
||||
giveitem ITEM_TM47
|
||||
call_if_eq VAR_RESULT, FALSE, GraniteCave_StevensRoom_EventScript_BagFull
|
||||
msgbox GraniteCave_StevensRoom_Text_CouldBecomeChampionLetsRegister, MSGBOX_DEFAULT
|
||||
closemessage
|
||||
delay 30
|
||||
playfanfare MUS_REGISTER_MATCH_CALL
|
||||
msgbox GraniteCave_StevensRoom_Text_RegisteredSteven, MSGBOX_DEFAULT
|
||||
waitfanfare
|
||||
closemessage
|
||||
delay 30
|
||||
setflag FLAG_REGISTERED_STEVEN_POKENAV
|
||||
//msgbox GraniteCave_StevensRoom_Text_ThankYouTakeThis, MSGBOX_DEFAULT
|
||||
//giveitem ITEM_TM47
|
||||
//call_if_eq VAR_RESULT, FALSE, GraniteCave_StevensRoom_EventScript_BagFull
|
||||
//msgbox GraniteCave_StevensRoom_Text_CouldBecomeChampionLetsRegister, MSGBOX_DEFAULT
|
||||
//closemessage
|
||||
//delay 30
|
||||
//playfanfare MUS_REGISTER_MATCH_CALL
|
||||
//msgbox GraniteCave_StevensRoom_Text_RegisteredSteven, MSGBOX_DEFAULT
|
||||
//waitfanfare
|
||||
//closemessage
|
||||
//delay 30
|
||||
//setflag FLAG_REGISTERED_STEVEN_POKENAV
|
||||
//insert own script here
|
||||
goto GraniteCave_StevensRoom_EventScript_Steven_AskForHelp
|
||||
goto GraniteCave_StevensRoom_EventScript_Colapse
|
||||
msgbox GraniteCave_StevensRoom_Text_IveGotToHurryAlong, MSGBOX_DEFAULT
|
||||
closemessage
|
||||
call_if_eq VAR_FACING, DIR_NORTH, GraniteCave_StevensRoom_EventScript_StevenExitNorth
|
||||
@@ -91,7 +91,7 @@ GraniteCave_StevensRoom_Text_ImStevenLetterForMe:
|
||||
.string "A LETTER for me?$"
|
||||
|
||||
GraniteCave_StevensRoom_Text_ThankYouTakeThis:
|
||||
.string "STEVEN: Okay, thank you.\p"
|
||||
.string "STEVEN: Thank you.\p"
|
||||
.string "You went through all this trouble to\n"
|
||||
.string "deliver that. I need to thank you.\p"
|
||||
.string "Let me see…\n"
|
||||
@@ -150,9 +150,8 @@ GraniteCave_StevensRoom_Movement_StevenLookAround:
|
||||
step_end
|
||||
|
||||
GraniteCave_StevensRoom_Text_AfterFall:
|
||||
.string "That was... interesting.\p"
|
||||
.string "Looks like you will be helping me\n"
|
||||
.string "afterall.\p"
|
||||
.string "That was unexpected...\l"
|
||||
.string "Looks like that letter will need to wait.\p"
|
||||
.string "....................$"
|
||||
|
||||
GraniteCave_StevensRoom_Text_UseDig:
|
||||
@@ -191,7 +190,7 @@ GraniteCave_StevensRoom_EventScript_Colapse::
|
||||
faceplayer
|
||||
msgbox GraniteCave_StevensRoom_Text_AfterFall, MSGBOX_NPC
|
||||
delay 64
|
||||
msgbox GraniteCave_StevensRoom_Text_UseDig
|
||||
msgbox GraniteCave_StevensRoom_Text_UseDig, MSGBOX_NPC
|
||||
delay 32
|
||||
fadescreen 3
|
||||
//applymovement OBJ_EVENT_ID_PLAYER, GraniteCave_StevensRoom_Movement_ReleaseBaltoy
|
||||
@@ -206,6 +205,7 @@ GraniteCave_StevensRoom_EventScript_Colapse::
|
||||
setvar VAR_0x8007, 2 @ shake delay
|
||||
special ShakeCamera
|
||||
waitstate
|
||||
setvar VAR_GRANITECAVE_AGGRON, 0
|
||||
releaseall
|
||||
warp MAP_GRANITE_CAVE_B3F, 3, 0, 0
|
||||
delay 32
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
"allow_running": true,
|
||||
"show_map_name": true,
|
||||
"battle_scene": "MAP_BATTLE_SCENE_NORMAL",
|
||||
"connections": null,
|
||||
"connections": 0,
|
||||
"object_events": [
|
||||
{
|
||||
"graphics_id": "OBJ_EVENT_GFX_MAN_3",
|
||||
@@ -84,7 +84,9 @@
|
||||
"dest_warp_id": "2"
|
||||
}
|
||||
],
|
||||
"coord_events": [],
|
||||
"coord_events": [
|
||||
|
||||
],
|
||||
"bg_events": [
|
||||
{
|
||||
"type": "sign",
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
"allow_running": true,
|
||||
"show_map_name": true,
|
||||
"battle_scene": "MAP_BATTLE_SCENE_NORMAL",
|
||||
"connections": null,
|
||||
"connections": 0,
|
||||
"object_events": [
|
||||
{
|
||||
"graphics_id": "OBJ_EVENT_GFX_ITEM_BALL",
|
||||
@@ -37,6 +37,10 @@
|
||||
"dest_warp_id": "3"
|
||||
}
|
||||
],
|
||||
"coord_events": [],
|
||||
"bg_events": []
|
||||
"coord_events": [
|
||||
|
||||
],
|
||||
"bg_events": [
|
||||
|
||||
]
|
||||
}
|
||||
@@ -441,7 +441,8 @@
|
||||
"PetalburgWoodsExt",
|
||||
"PetalburgWoodsext2",
|
||||
"GraniteCave_B3F",
|
||||
"GraniteCave_B4F"
|
||||
"GraniteCave_B4F",
|
||||
"GraniteCave_B4FNorth"
|
||||
],
|
||||
"gMapGroup_IndoorDynamic": [
|
||||
"SecretBase_RedCave1",
|
||||
|
||||
@@ -394,6 +394,10 @@ GraniteCave_B4F_EventScript_ItemRareCandy::
|
||||
finditem ITEM_RARE_CANDY
|
||||
end
|
||||
|
||||
GraniteCave_B4FNorth_EventScript_ItemMasterBall::
|
||||
finditem ITEM_MASTER_BALL
|
||||
end
|
||||
|
||||
JaggedPass_EventScript_ItemBurnHeal::
|
||||
finditem ITEM_BURN_HEAL
|
||||
end
|
||||
|
||||
+1
-1
@@ -74,6 +74,6 @@
|
||||
#define GEN_LATEST GEN_8
|
||||
|
||||
// General settings
|
||||
#define EXPANSION_INTRO TRUE // If TRUE, a custom RHH intro will play after the vanilla copyright screen.
|
||||
#define EXPANSION_INTRO FALSE // If TRUE, a custom RHH intro will play after the vanilla copyright screen.
|
||||
|
||||
#endif // GUARD_CONFIG_H
|
||||
@@ -14,5 +14,7 @@
|
||||
#define TRAINER_BATTLE_SET_TRAINER_A 10
|
||||
#define TRAINER_BATTLE_SET_TRAINER_B 11
|
||||
#define TRAINER_BATTLE_HILL 12
|
||||
#define TRAINER_BATTLE_NO_WHITEOUT_CONTINUE_SCRIPT 13
|
||||
#define TRAINER_BATTLE_NO_INTRO_NO_WHITEOUT 14
|
||||
|
||||
#endif // GUARD_CONSTANTS_BATTLE_SETUP_H
|
||||
@@ -647,8 +647,10 @@
|
||||
#define STRINGID_STEALTHROCKDISAPPEAREDFROMTEAM 645
|
||||
#define STRINGID_COULDNTFULLYPROTECT 646
|
||||
#define STRINGID_STOCKPILEDEFFECTWOREOFF 647
|
||||
#define STRINGID_PLAYERWHITEOUT3 648
|
||||
|
||||
#define BATTLESTRINGS_COUNT 649
|
||||
|
||||
#define BATTLESTRINGS_COUNT 648
|
||||
|
||||
// This is the string id that gBattleStringsTable starts with.
|
||||
// String ids before this (e.g. STRINGID_INTROMSG) are not in the table,
|
||||
|
||||
@@ -1231,7 +1231,7 @@
|
||||
#define FLAG_ITEM_GRANITE_CAVE_4F_RARECANDY 0x49D // Unused Flag
|
||||
#define FLAG_STEVENS_CAVE_AGRON 0x49E // Unused Flag
|
||||
#define FLAG_STEVENS_CAVE_DUGDEEPER 0x49F // Unused Flag
|
||||
#define FLAG_UNUSED_0x4A0 0x4A0 // Unused Flag
|
||||
#define FLAG_ITEM_GRANITE_CAVE_4FNORTH_MASTERBALL 0x4A0 // Unused Flag
|
||||
#define FLAG_UNUSED_0x4A1 0x4A1 // Unused Flag
|
||||
#define FLAG_UNUSED_0x4A2 0x4A2 // Unused Flag
|
||||
#define FLAG_UNUSED_0x4A3 0x4A3 // Unused Flag
|
||||
|
||||
@@ -458,5 +458,6 @@
|
||||
#define LAYOUT_RUSTBORO_CITY_LEAFS_HOUSE_2F 451
|
||||
#define LAYOUT_GRANITE_CAVE_B3F 452
|
||||
#define LAYOUT_GRANITE_CAVE_B4F 453
|
||||
#define LAYOUT_GRANITE_CAVE_B4FNORTH 454
|
||||
|
||||
#endif // GUARD_CONSTANTS_LAYOUTS_H
|
||||
@@ -412,6 +412,7 @@
|
||||
#define MAP_PETALBURG_WOODSEXT2 (109 | (24 << 8))
|
||||
#define MAP_GRANITE_CAVE_B3F (110 | (24 << 8))
|
||||
#define MAP_GRANITE_CAVE_B4F (111 | (24 << 8))
|
||||
#define MAP_GRANITE_CAVE_B4FNORTH (112 | (24 << 8))
|
||||
|
||||
// gMapGroup_IndoorDynamic
|
||||
#define MAP_SECRET_BASE_RED_CAVE1 (0 | (25 << 8))
|
||||
|
||||
@@ -85,6 +85,7 @@ static const u8 sText_PlayerWhiteout2[] = _("{B_PLAYER_NAME} panicked and lost
|
||||
#else
|
||||
static const u8 sText_PlayerWhiteout2[] = _("{B_PLAYER_NAME} whited out!{PAUSE_UNTIL_PRESS}");
|
||||
#endif
|
||||
static const u8 sText_PlayerWhiteout3[] = _("{B_PLAYER_NAME} lost the battle!{PAUSE_UNTIL_PRESS}");
|
||||
static const u8 sText_PreventsEscape[] = _("{B_SCR_ACTIVE_NAME_WITH_PREFIX} prevents\nescape with {B_SCR_ACTIVE_ABILITY}!\p");
|
||||
static const u8 sText_CantEscape2[] = _("Can't escape!\p");
|
||||
static const u8 sText_AttackerCantEscape[] = _("{B_ATK_NAME_WITH_PREFIX} can't escape!");
|
||||
@@ -911,6 +912,7 @@ const u8 *const gBattleStringsTable[BATTLESTRINGS_COUNT] =
|
||||
[STRINGID_PLAYERGOTMONEY - BATTLESTRINGS_TABLE_START] = sText_PlayerGotMoney,
|
||||
[STRINGID_PLAYERWHITEOUT - BATTLESTRINGS_TABLE_START] = sText_PlayerWhiteout,
|
||||
[STRINGID_PLAYERWHITEOUT2 - BATTLESTRINGS_TABLE_START] = sText_PlayerWhiteout2,
|
||||
[STRINGID_PLAYERWHITEOUT3 - BATTLESTRINGS_TABLE_START] = sText_PlayerWhiteout3,
|
||||
[STRINGID_PREVENTSESCAPE - BATTLESTRINGS_TABLE_START] = sText_PreventsEscape,
|
||||
[STRINGID_HITXTIMES - BATTLESTRINGS_TABLE_START] = sText_HitXTimes,
|
||||
[STRINGID_PKMNFELLASLEEP - BATTLESTRINGS_TABLE_START] = sText_PkmnFellAsleep,
|
||||
|
||||
+28
-17
@@ -81,6 +81,7 @@ static void TryUpdateGymLeaderRematchFromTrainer(void);
|
||||
static void CB2_GiveStarter(void);
|
||||
static void CB2_StartFirstBattle(void);
|
||||
static void CB2_EndFirstBattle(void);
|
||||
static bool8 BattleHasNoWhiteout(void);
|
||||
static void CB2_EndTrainerBattle(void);
|
||||
static bool32 IsPlayerDefeated(u32 battleOutcome);
|
||||
static u16 GetRematchTrainerId(u16 trainerId);
|
||||
@@ -89,7 +90,7 @@ static void HandleRematchVarsOnBattleEnd(void);
|
||||
static const u8 *GetIntroSpeechOfApproachingTrainer(void);
|
||||
static const u8 *GetTrainerCantBattleSpeech(void);
|
||||
|
||||
EWRAM_DATA static u16 sTrainerBattleMode = 0;
|
||||
EWRAM_DATA u16 gTrainerBattleMode = 0;
|
||||
EWRAM_DATA u16 gTrainerBattleOpponent_A = 0;
|
||||
EWRAM_DATA u16 gTrainerBattleOpponent_B = 0;
|
||||
EWRAM_DATA u16 gPartnerTrainerId = 0;
|
||||
@@ -158,7 +159,7 @@ static const u8 sBattleTransitionTable_BattleDome[] =
|
||||
|
||||
static const struct TrainerBattleParameter sOrdinaryBattleParams[] =
|
||||
{
|
||||
{&sTrainerBattleMode, TRAINER_PARAM_LOAD_VAL_8BIT},
|
||||
{&gTrainerBattleMode, TRAINER_PARAM_LOAD_VAL_8BIT},
|
||||
{&gTrainerBattleOpponent_A, TRAINER_PARAM_LOAD_VAL_16BIT},
|
||||
{&sTrainerObjectEventLocalId, TRAINER_PARAM_LOAD_VAL_16BIT},
|
||||
{&sTrainerAIntroSpeech, TRAINER_PARAM_LOAD_VAL_32BIT},
|
||||
@@ -171,7 +172,7 @@ static const struct TrainerBattleParameter sOrdinaryBattleParams[] =
|
||||
|
||||
static const struct TrainerBattleParameter sContinueScriptBattleParams[] =
|
||||
{
|
||||
{&sTrainerBattleMode, TRAINER_PARAM_LOAD_VAL_8BIT},
|
||||
{&gTrainerBattleMode, TRAINER_PARAM_LOAD_VAL_8BIT},
|
||||
{&gTrainerBattleOpponent_A, TRAINER_PARAM_LOAD_VAL_16BIT},
|
||||
{&sTrainerObjectEventLocalId, TRAINER_PARAM_LOAD_VAL_16BIT},
|
||||
{&sTrainerAIntroSpeech, TRAINER_PARAM_LOAD_VAL_32BIT},
|
||||
@@ -184,7 +185,7 @@ static const struct TrainerBattleParameter sContinueScriptBattleParams[] =
|
||||
|
||||
static const struct TrainerBattleParameter sDoubleBattleParams[] =
|
||||
{
|
||||
{&sTrainerBattleMode, TRAINER_PARAM_LOAD_VAL_8BIT},
|
||||
{&gTrainerBattleMode, TRAINER_PARAM_LOAD_VAL_8BIT},
|
||||
{&gTrainerBattleOpponent_A, TRAINER_PARAM_LOAD_VAL_16BIT},
|
||||
{&sTrainerObjectEventLocalId, TRAINER_PARAM_LOAD_VAL_16BIT},
|
||||
{&sTrainerAIntroSpeech, TRAINER_PARAM_LOAD_VAL_32BIT},
|
||||
@@ -197,7 +198,7 @@ static const struct TrainerBattleParameter sDoubleBattleParams[] =
|
||||
|
||||
static const struct TrainerBattleParameter sOrdinaryNoIntroBattleParams[] =
|
||||
{
|
||||
{&sTrainerBattleMode, TRAINER_PARAM_LOAD_VAL_8BIT},
|
||||
{&gTrainerBattleMode, TRAINER_PARAM_LOAD_VAL_8BIT},
|
||||
{&gTrainerBattleOpponent_A, TRAINER_PARAM_LOAD_VAL_16BIT},
|
||||
{&sTrainerObjectEventLocalId, TRAINER_PARAM_LOAD_VAL_16BIT},
|
||||
{&sTrainerAIntroSpeech, TRAINER_PARAM_CLEAR_VAL_32BIT},
|
||||
@@ -210,7 +211,7 @@ static const struct TrainerBattleParameter sOrdinaryNoIntroBattleParams[] =
|
||||
|
||||
static const struct TrainerBattleParameter sContinueScriptDoubleBattleParams[] =
|
||||
{
|
||||
{&sTrainerBattleMode, TRAINER_PARAM_LOAD_VAL_8BIT},
|
||||
{&gTrainerBattleMode, TRAINER_PARAM_LOAD_VAL_8BIT},
|
||||
{&gTrainerBattleOpponent_A, TRAINER_PARAM_LOAD_VAL_16BIT},
|
||||
{&sTrainerObjectEventLocalId, TRAINER_PARAM_LOAD_VAL_16BIT},
|
||||
{&sTrainerAIntroSpeech, TRAINER_PARAM_LOAD_VAL_32BIT},
|
||||
@@ -223,7 +224,7 @@ static const struct TrainerBattleParameter sContinueScriptDoubleBattleParams[] =
|
||||
|
||||
static const struct TrainerBattleParameter sTrainerBOrdinaryBattleParams[] =
|
||||
{
|
||||
{&sTrainerBattleMode, TRAINER_PARAM_LOAD_VAL_8BIT},
|
||||
{&gTrainerBattleMode, TRAINER_PARAM_LOAD_VAL_8BIT},
|
||||
{&gTrainerBattleOpponent_B, TRAINER_PARAM_LOAD_VAL_16BIT},
|
||||
{&sTrainerObjectEventLocalId, TRAINER_PARAM_LOAD_VAL_16BIT},
|
||||
{&sTrainerBIntroSpeech, TRAINER_PARAM_LOAD_VAL_32BIT},
|
||||
@@ -236,7 +237,7 @@ static const struct TrainerBattleParameter sTrainerBOrdinaryBattleParams[] =
|
||||
|
||||
static const struct TrainerBattleParameter sTrainerBContinueScriptBattleParams[] =
|
||||
{
|
||||
{&sTrainerBattleMode, TRAINER_PARAM_LOAD_VAL_8BIT},
|
||||
{&gTrainerBattleMode, TRAINER_PARAM_LOAD_VAL_8BIT},
|
||||
{&gTrainerBattleOpponent_B, TRAINER_PARAM_LOAD_VAL_16BIT},
|
||||
{&sTrainerObjectEventLocalId, TRAINER_PARAM_LOAD_VAL_16BIT},
|
||||
{&sTrainerBIntroSpeech, TRAINER_PARAM_LOAD_VAL_32BIT},
|
||||
@@ -492,7 +493,7 @@ void StartWallyTutorialBattle(void)
|
||||
|
||||
void LaironBattle(void){
|
||||
u16 monData;
|
||||
CreateMaleMon(&gEnemyParty[0], SPECIES_LAIRON, 22);
|
||||
CreateMaleMon(&gEnemyParty[0], SPECIES_LAIRON, 23);
|
||||
monData = MOVE_METAL_CLAW;
|
||||
SetMonData(&gEnemyParty[0], MON_DATA_MOVE1, &monData);
|
||||
monData = MOVE_MUD_SLAP;
|
||||
@@ -503,7 +504,7 @@ void LaironBattle(void){
|
||||
SetMonData(&gEnemyParty[0], MON_DATA_MOVE4, &monData);
|
||||
|
||||
gMain.savedCallback = CB2_ReturnToFieldContinueScriptPlayMapMusic;
|
||||
CreateBattleStartTask(B_TRANSITION_SLICE, 0);
|
||||
CreateBattleStartTask(B_TRANSITION_SLICE, MUS_HELP);
|
||||
}
|
||||
|
||||
void BattleSetup_StartScriptedWildBattle(void)
|
||||
@@ -1059,7 +1060,7 @@ void ResetTrainerOpponentIds(void)
|
||||
|
||||
static void InitTrainerBattleVariables(void)
|
||||
{
|
||||
sTrainerBattleMode = 0;
|
||||
gTrainerBattleMode = 0;
|
||||
if (gApproachingTrainerId == 0)
|
||||
{
|
||||
sTrainerAIntroSpeech = NULL;
|
||||
@@ -1146,11 +1147,12 @@ const u8 *BattleSetup_ConfigureTrainerBattle(const u8 *data)
|
||||
{
|
||||
if (TrainerBattleLoadArg8(data) != TRAINER_BATTLE_SET_TRAINER_B)
|
||||
InitTrainerBattleVariables();
|
||||
sTrainerBattleMode = TrainerBattleLoadArg8(data);
|
||||
gTrainerBattleMode = TrainerBattleLoadArg8(data);
|
||||
|
||||
switch (sTrainerBattleMode)
|
||||
switch (gTrainerBattleMode)
|
||||
{
|
||||
case TRAINER_BATTLE_SINGLE_NO_INTRO_TEXT:
|
||||
case TRAINER_BATTLE_NO_INTRO_NO_WHITEOUT:
|
||||
TrainerBattleLoadArgs(sOrdinaryNoIntroBattleParams, data);
|
||||
return EventScript_DoNoIntroTrainerBattle;
|
||||
case TRAINER_BATTLE_DOUBLE:
|
||||
@@ -1158,6 +1160,7 @@ const u8 *BattleSetup_ConfigureTrainerBattle(const u8 *data)
|
||||
SetMapVarsToTrainer();
|
||||
return EventScript_TryDoDoubleTrainerBattle;
|
||||
case TRAINER_BATTLE_CONTINUE_SCRIPT:
|
||||
case TRAINER_BATTLE_NO_WHITEOUT_CONTINUE_SCRIPT:
|
||||
if (gApproachingTrainerId == 0)
|
||||
{
|
||||
TrainerBattleLoadArgs(sContinueScriptBattleParams, data);
|
||||
@@ -1272,7 +1275,7 @@ void SetTrainerFacingDirection(void)
|
||||
|
||||
u8 GetTrainerBattleMode(void)
|
||||
{
|
||||
return sTrainerBattleMode;
|
||||
return gTrainerBattleMode;
|
||||
}
|
||||
|
||||
bool8 GetTrainerFlag(void)
|
||||
@@ -1367,6 +1370,14 @@ void BattleSetup_StartTrainerBattle(void)
|
||||
ScriptContext_Stop();
|
||||
}
|
||||
|
||||
static bool8 BattleHasNoWhiteout()
|
||||
{
|
||||
if (gTrainerBattleMode == TRAINER_BATTLE_NO_WHITEOUT_CONTINUE_SCRIPT || gTrainerBattleMode == TRAINER_BATTLE_NO_INTRO_NO_WHITEOUT)
|
||||
return TRUE;
|
||||
else
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
static void CB2_EndTrainerBattle(void)
|
||||
{
|
||||
if (gTrainerBattleOpponent_A == TRAINER_SECRET_BASE)
|
||||
@@ -1375,7 +1386,7 @@ static void CB2_EndTrainerBattle(void)
|
||||
}
|
||||
else if (IsPlayerDefeated(gBattleOutcome) == TRUE)
|
||||
{
|
||||
if (InBattlePyramid() || InTrainerHillChallenge())
|
||||
if (InBattlePyramid() || InTrainerHillChallenge() || BattleHasNoWhiteout())
|
||||
SetMainCallback2(CB2_ReturnToFieldContinueScriptPlayMapMusic);
|
||||
else
|
||||
SetMainCallback2(CB2_WhiteOut);
|
||||
@@ -1492,8 +1503,8 @@ void PlayTrainerEncounterMusic(void)
|
||||
else
|
||||
trainerId = gTrainerBattleOpponent_B;
|
||||
|
||||
if (sTrainerBattleMode != TRAINER_BATTLE_CONTINUE_SCRIPT_NO_MUSIC
|
||||
&& sTrainerBattleMode != TRAINER_BATTLE_CONTINUE_SCRIPT_DOUBLE_NO_MUSIC)
|
||||
if (gTrainerBattleMode != TRAINER_BATTLE_CONTINUE_SCRIPT_NO_MUSIC
|
||||
&& gTrainerBattleMode != TRAINER_BATTLE_CONTINUE_SCRIPT_DOUBLE_NO_MUSIC)
|
||||
{
|
||||
switch (GetTrainerEncounterMusicId(trainerId))
|
||||
{
|
||||
|
||||
@@ -1 +1 @@
|
||||
static const u8 MAP_GROUP_COUNT[] = {63, 5, 5, 6, 7, 8, 9, 7, 7, 14, 8, 19, 10, 23, 13, 15, 15, 2, 2, 2, 3, 1, 1, 1, 112, 61, 89, 2, 1, 13, 1, 1, 3, 1, 0};
|
||||
static const u8 MAP_GROUP_COUNT[] = {63, 5, 5, 6, 7, 8, 9, 7, 7, 14, 8, 19, 10, 23, 13, 15, 15, 2, 2, 2, 3, 1, 1, 1, 113, 61, 89, 2, 1, 13, 1, 1, 3, 1, 0};
|
||||
@@ -12160,6 +12160,75 @@
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"map": "MAP_GRANITE_CAVE_B4FNORTH",
|
||||
"base_label": "gGraniteCave_B4FNorth0",
|
||||
"land_mons": {
|
||||
"encounter_rate": 10,
|
||||
"mons": [
|
||||
{
|
||||
"min_level": 10,
|
||||
"max_level": 10,
|
||||
"species": "SPECIES_ZUBAT"
|
||||
},
|
||||
{
|
||||
"min_level": 11,
|
||||
"max_level": 11,
|
||||
"species": "SPECIES_ARON"
|
||||
},
|
||||
{
|
||||
"min_level": 10,
|
||||
"max_level": 10,
|
||||
"species": "SPECIES_ARON"
|
||||
},
|
||||
{
|
||||
"min_level": 11,
|
||||
"max_level": 11,
|
||||
"species": "SPECIES_ZUBAT"
|
||||
},
|
||||
{
|
||||
"min_level": 12,
|
||||
"max_level": 12,
|
||||
"species": "SPECIES_ARON"
|
||||
},
|
||||
{
|
||||
"min_level": 10,
|
||||
"max_level": 10,
|
||||
"species": "SPECIES_ABRA"
|
||||
},
|
||||
{
|
||||
"min_level": 10,
|
||||
"max_level": 10,
|
||||
"species": "SPECIES_BELDUM"
|
||||
},
|
||||
{
|
||||
"min_level": 11,
|
||||
"max_level": 11,
|
||||
"species": "SPECIES_BELDUM"
|
||||
},
|
||||
{
|
||||
"min_level": 12,
|
||||
"max_level": 12,
|
||||
"species": "SPECIES_ONIX"
|
||||
},
|
||||
{
|
||||
"min_level": 10,
|
||||
"max_level": 10,
|
||||
"species": "SPECIES_ONIX"
|
||||
},
|
||||
{
|
||||
"min_level": 12,
|
||||
"max_level": 12,
|
||||
"species": "SPECIES_SABLEYE"
|
||||
},
|
||||
{
|
||||
"min_level": 14,
|
||||
"max_level": 16,
|
||||
"species": "SPECIES_GOLBAT"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
|
||||
@@ -39,9 +39,16 @@
|
||||
|
||||
static EWRAM_DATA u8 sWildEncounterImmunitySteps = 0;
|
||||
static EWRAM_DATA u16 sPrevMetatileBehavior = 0;
|
||||
static EWRAM_DATA u8 sCurrentDirection = 0;
|
||||
static EWRAM_DATA u8 sPreviousDirection = 0;
|
||||
|
||||
u8 gSelectedObjectEvent;
|
||||
|
||||
static void SetDirectionFromHeldKeys(u16 heldKeys);
|
||||
static u8 GetDirectionFromBitfield(u8 bitfield);
|
||||
static void GetPlayerPosition(struct MapPosition *);
|
||||
static void GetInFrontOfPlayerPosition(struct MapPosition *);
|
||||
|
||||
static void GetPlayerPosition(struct MapPosition *);
|
||||
static void GetInFrontOfPlayerPosition(struct MapPosition *);
|
||||
static u16 GetPlayerCurMetatileBehavior(int);
|
||||
@@ -123,14 +130,16 @@ void FieldGetPlayerInput(struct FieldInput *input, u16 newKeys, u16 heldKeys)
|
||||
input->checkStandardWildEncounter = TRUE;
|
||||
}
|
||||
|
||||
if (heldKeys & DPAD_UP)
|
||||
/* if (heldKeys & DPAD_UP)
|
||||
input->dpadDirection = DIR_NORTH;
|
||||
else if (heldKeys & DPAD_DOWN)
|
||||
input->dpadDirection = DIR_SOUTH;
|
||||
else if (heldKeys & DPAD_LEFT)
|
||||
input->dpadDirection = DIR_WEST;
|
||||
else if (heldKeys & DPAD_RIGHT)
|
||||
input->dpadDirection = DIR_EAST;
|
||||
input->dpadDirection = DIR_EAST; */
|
||||
SetDirectionFromHeldKeys(heldKeys);
|
||||
input->dpadDirection = sCurrentDirection;
|
||||
|
||||
#if DEBUG_OVERWORLD_MENU == TRUE && DEBUG_OVERWORLD_IN_MENU == FALSE
|
||||
if ((heldKeys & DEBUG_OVERWORLD_HELD_KEYS) && input->DEBUG_OVERWORLD_TRIGGER_EVENT)
|
||||
@@ -1044,3 +1053,55 @@ int SetCableClubWarp(void)
|
||||
SetupWarp(&gMapHeader, GetWarpEventAtMapPosition(&gMapHeader, &position), &position);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
//Smooth Movment
|
||||
static u8 GetDirectionFromBitfield(u8 bitfield)
|
||||
{
|
||||
u8 direction = 0;
|
||||
while (bitfield >>= 1) direction++;
|
||||
return direction;
|
||||
}
|
||||
|
||||
static void SetDirectionFromHeldKeys(u16 heldKeys)
|
||||
{
|
||||
u8 dpadDirections = 0;
|
||||
|
||||
if (heldKeys & DPAD_UP)
|
||||
dpadDirections |= (1 << DIR_NORTH);
|
||||
if (heldKeys & DPAD_DOWN)
|
||||
dpadDirections |= (1 << DIR_SOUTH);
|
||||
if (heldKeys & DPAD_LEFT)
|
||||
dpadDirections |= (1 << DIR_WEST);
|
||||
if (heldKeys & DPAD_RIGHT)
|
||||
dpadDirections |= (1 << DIR_EAST);
|
||||
|
||||
if (dpadDirections == 0) // no dir is pushed
|
||||
{
|
||||
sCurrentDirection = DIR_NONE;
|
||||
sPreviousDirection = DIR_NONE;
|
||||
return;
|
||||
}
|
||||
|
||||
if ((dpadDirections & (dpadDirections - 1)) == 0) // only 1 dir is pushed
|
||||
{
|
||||
// simply set currDir to that dir
|
||||
sCurrentDirection = GetDirectionFromBitfield(dpadDirections);
|
||||
sPreviousDirection = DIR_NONE;
|
||||
return;
|
||||
}
|
||||
|
||||
if (((dpadDirections >> sCurrentDirection) & 1) == 0) // none of the multiple dirs pushed is currDir
|
||||
{
|
||||
sCurrentDirection = DIR_NONE;
|
||||
sPreviousDirection = DIR_NONE;
|
||||
}
|
||||
else if ((sPreviousDirection == DIR_NONE) || (((dpadDirections >> sPreviousDirection) & 1) == 0))
|
||||
{
|
||||
// turn
|
||||
sCurrentDirection = GetDirectionFromBitfield(dpadDirections & ~(1 << sCurrentDirection));
|
||||
sPreviousDirection = sCurrentDirection;
|
||||
}
|
||||
// else, currDir and prevDir are the dirs pushed
|
||||
// do nothing (keep the same currDir and prevDir)
|
||||
}
|
||||
Reference in new issue
Block a user