Files
infinitefusion-e18/Data/Scripts/053_PIF_Hoenn/Gameplay/Quests/MagmaAquaQuests.rb
T
2026-07-10 15:42:06 -04:00

385 lines
13 KiB
Ruby

################
#### AQUA ##
################
def build_aqua_song(event_id1, event_id2)
chorus = _INTL("Oh! \\wt[10]Hey!\\wt[10]\\wt[10] Aqua!\\wt[10] We're Team Aqua!")
add_aqua_song_segment(chorus)
segment1 = build_aqua_song_pt1(event_id1, event_id2, chorus)
build_aqua_song_pt2(event_id1, event_id2)
add_aqua_song_segment(chorus)
# add_aqua_song_segment(segment1)
build_aqua_song_pt3(event_id1, event_id2)
end
def build_aqua_song_pt1(event_id1, event_id2, chorus)
pbCallBubDown(2, event_id1) # Left
pbMessage(_INTL("Let's see, this is what we have so far."))
pbCallBubDown(2, event_id1) # Left
pbMessage(_INTL("The start of the song goes like this..."))
#~~~~~ Singing ~~~~~~
segment_1_incomplete = _INTL("Cool as...\\wt[20]\\ts[1]Something...\\n\\ts[4]\\wt[10]Graceful like... \\wt[20]\\ts[1]Something else...")
add_aqua_song_segment(segment_1_incomplete)
sing_aqua_song
pbWait(10)
#~~~~~~~~~~~
pbCallBubDown(2, event_id1) # Left
pbMessage(_INTL("Yeah... That's all we have so far."))
confirmed = false
while !confirmed
pbCallBubUp(2, event_id2) # Right
pbMessage(_INTL("So uh... What's something that's icy cool?"))
helpText = _INTL("Cool as...")
word1 = pbEnterText(helpText, 2, 16)
pbCallBubDown(2, event_id1) # Left
commands = [_INTL("That's right!"), _INTL("Maybe not...")]
confirmed = pbMessage(_INTL("Cool as {1}...?", word1), commands) == 0
end
pbCallBubUp(2, event_id2) # Right
pbMessage(_INTL("Hmmm..."))
pbCallBubDown(2, event_id1) # Left
pbMessage(_INTL("Not bad! That might be the one."))
pbWait(10)
#~~~~~ Singing ~~~~~~
pbSet(VAR_AQUA_SONG, [])
add_aqua_song_segment(chorus)
segment_1_incomplete2 = _INTL("Cool as {1}!\\wt[10]\\nGraceful like...\\wt[20]\\ts[1]Something...", word1)
add_aqua_song_segment(segment_1_incomplete2)
sing_aqua_song
pbWait(10)
#~~~~~~~~~~~
confirmed = false
while !confirmed
pbCallBubUp(2, event_id2) # Right
pbMessage(_INTL("Uh... Graceful like what?"))
helpText = _INTL("Graceful like...")
word2 = pbEnterText(helpText, 2, 16)
pbCallBubUp(2, event_id2) # Right
commands = [_INTL("That's right!"), _INTL("Maybe not...")]
confirmed = pbMessage(_INTL("Cool as {1}!\\nGraceful like {2}!", word1, word2), commands) == 0
end
pbCallBubDown(2, event_id1) # Left
pbMessage(_INTL("That sounds pretty good, right?"))
pbSet(VAR_AQUA_SONG, [])
add_aqua_song_segment(chorus)
segment_1_complete = _INTL("Cool as {1}!\\n\\wt[10]Graceful like {2}!", word1, word2)
add_aqua_song_segment(segment_1_complete)
pbCallBubDown(2, event_id1) # Left
pbMessage(_INTL("Okay... On to the next part!"))
return segment_1_complete
end
def build_aqua_song_pt2(event_id1, event_id2)
cmd_goals = _INTL("Our goals")
cmd_style = _INTL("Our style")
cmd_strength = _INTL("Our strength")
commands = [cmd_goals, cmd_style, cmd_strength]
confirmed = false
while !confirmed
pbCallBubDown(2, event_id1) # Left
choice = pbMessage(_INTL("So... What should the next line of the song be about?"), commands)
pbCallBubDown(2, event_id1) # Left
pbMessage(_INTL("Okay... What do you think of this?"))
case commands[choice]
when cmd_goals
segment1 = _INTL("\\ts[4]\\C[1]Life depends on the sea, ya see\\n\\wt[5]We gotta ex\\wt[2]pand \\wt[2]it \\wt[2]to be free")
when cmd_style
segment1 = _INTL("\\ts[4]\\C[1]With our cool bandanas, we rule\\n\\wt[5]Our style will \\wt[6]make you drool")
when cmd_strength
segment1 = _INTL("\\ts[4]\\C[1]Our power is deep as the blue\\n\\wt[5]There's nothing\\wt[5] Team Aqua can't do")
end
commands_confirm = [_INTL("Perfect"), _INTL("Let's try something else...")]
pbCallBubDown(2, event_id1) # Left
confirmed = pbMessage(segment1, commands_confirm) == 0
end
add_aqua_song_segment(segment1)
pbCallBubUp(2, event_id2) # Right
pbMessage(_INTL("Yeah, this rules!"))
pbCallBubUp(2, event_id2) # Right
pbMessage(_INTL("The next line should talk about something that inspires us."))
cmd_leader = _INTL("Archie")
cmd_land = _INTL("The ocean")
cmd_pokemon = _INTL("Pokémon")
commands = [cmd_leader, cmd_land, cmd_pokemon]
confirmed = false
while !confirmed
pbCallBubDown(2, event_id1) # Left
choice = pbMessage(_INTL("What should we sing about?"), commands)
pbCallBubUp(2, event_id2) # Right
pbMessage(_INTL("Hmm... How about this?"))
case commands[choice]
when cmd_leader
segment2 = _INTL("\\ts[4]\\C[1]Archie's a captain bold\\n\\wt[5]His legend is \\ts[2]yet un\\wt[5]told")
when cmd_land
segment2 = _INTL("\\ts[4]\\C[1]The ocean is our home\\n\\wt[5]We sail through \\ts[2]salt and \\wt[5]foam")
when cmd_pokemon
segment2 = _INTL("\\ts[4]\\C[1]Water Pokémon by our side\\n\\wt[5]We always surf the \\ts[2]\\wt[5]tide")
end
commands_confirm = [_INTL("Perfect"), _INTL("Let's try something else...")]
pbCallBubDown(2, event_id1) # Left
confirmed = pbMessage(segment2, commands_confirm) == 0
end
add_aqua_song_segment(segment2)
pbCallBubDown(2, event_id1) # Left
pbMessage(_INTL("I'm feeling it!"))
end
def build_aqua_song_pt3(event_id1, event_id2)
confirmed = false
while !confirmed
pbCallBubUp(2, event_id2) # Right
pbMessage(_INTL("Now we only need an ending line. Do you have something in mind?"))
helpText = _INTL("The song's final line...")
line = pbEnterText(helpText, 2, 50)
pbCallBubUp(2, event_id2) # Right
commands = [_INTL("That's right!"), _INTL("Maybe not...")]
confirmed = pbMessage(_INTL("{1}... ?", line), commands) == 0
end
add_aqua_song_segment(line)
end
def sing_aqua_song
pbMEPlay("aqua_theme_song")
pbWait(160) # Wait for intro
lyrics = pbGet(VAR_AQUA_SONG)
lyrics = [] unless lyrics.is_a?(Array)
for line in lyrics
pbMEPlay("aqua_theme_song")
line = "\\ts[2]\\C[1]#{line}\\wtnp[12]"
pbCallBub(3)
pbMessage(line)
end
pbMEStop
end
def add_aqua_song_segment(text)
current_song = pbGet(VAR_AQUA_SONG)
current_song = [] unless current_song.is_a?(Array)
current_song << text
pbSet(VAR_AQUA_SONG, current_song)
end
################
#### MAGMA ##
################
def build_magma_song(event_id1, event_id2)
chorus = _INTL("Ma\\wt[10]gma!\\n\\wt[5]Team Ma\\wt[10]gma!")
add_magma_song_segment(chorus)
segment1 = build_magma_song_pt1(event_id1, event_id2, chorus)
build_magma_song_pt2(event_id1, event_id2)
add_magma_song_segment(chorus)
# add_magma_song_segment(segment1)
build_magma_song_pt3(event_id1, event_id2)
end
def build_magma_song_pt1(event_id1, event_id2, chorus)
pbCallBubDown(2, event_id1) # Left
pbMessage(_INTL("Let's see, this is what we have so far."))
pbCallBubDown(2, event_id1) # Left
pbMessage(_INTL("The start of the song goes like this..."))
#~~~~~ Singing ~~~~~~
segment_1_incomplete = _INTL("Hot as...\\wt[20]\\ts[1]Something...\\ts[4]\\wt[10]\\nFierce like...\\wt[20]\\ts[1]Something else...")
add_magma_song_segment(segment_1_incomplete)
sing_magma_song
pbWait(10)
#~~~~~~~~~~~
pbCallBubDown(2, event_id1) # Left
pbMessage(_INTL("Yeah... That's all we have so far."))
confirmed = false
while !confirmed
pbCallBubUp(2, event_id2) # Right
pbMessage(_INTL("So uh... What's something that's burning hot?"))
helpText = _INTL("Hot as...")
word1 = pbEnterText(helpText, 2, 16)
pbCallBubDown(2, event_id1) # Left
commands = [_INTL("That's right!"), _INTL("Maybe not...")]
confirmed = pbMessage(_INTL("Hot as {1}...?", word1), commands) == 0
end
pbCallBubUp(2, event_id2) # Right
pbMessage(_INTL("Hmmm..."))
pbCallBubDown(2, event_id1) # Left
pbMessage(_INTL("I like it! Let's go with this!"))
pbWait(10)
#~~~~~ Singing ~~~~~~
pbSet(VAR_MAGMA_SONG, [])
add_magma_song_segment(chorus)
segment_1_incomplete2 = _INTL("Hot as {1}!\\wt[10]\\nFierce like...\\wt[20]\\ts[1]Something...", word1)
add_magma_song_segment(segment_1_incomplete2)
sing_magma_song
pbWait(10)
#~~~~~~~~~~~
confirmed = false
while !confirmed
pbCallBubUp(2, event_id2) # Right
pbMessage(_INTL("Uh... Fierce like what?"))
helpText = _INTL("Fierce like...")
word2 = pbEnterText(helpText, 2, 16)
pbCallBubUp(2, event_id2) # Right
commands = [_INTL("That's right!"), _INTL("Maybe not...")]
confirmed = pbMessage(_INTL("Hot as {1}! Fierce like {2}!", word1, word2), commands) == 0
end
pbCallBubDown(2, event_id1) # Left
pbMessage(_INTL("It has a nice ring to it, don't you think?"))
pbSet(VAR_MAGMA_SONG, [])
add_magma_song_segment(chorus)
segment_1_complete = _INTL("Hot as {1}!\\wt[10]\\nFierce like {2}!", word1, word2)
add_magma_song_segment(segment_1_complete)
pbCallBubDown(2, event_id1) # Left
pbMessage(_INTL("Okay... On to the next part!"))
return segment_1_complete
end
def build_magma_song_pt2(event_id1, event_id2)
cmd_goals = _INTL("Our goals")
cmd_style = _INTL("Our style")
cmd_strength = _INTL("Our strength")
commands = [cmd_goals, cmd_style, cmd_strength]
confirmed = false
while !confirmed
pbCallBubDown(2, event_id1) # Left
choice = pbMessage(_INTL("So... What should the next line of the song be about?"), commands)
pbCallBubDown(2, event_id1) # Left
pbMessage(_INTL("Okay... How's this?"))
case commands[choice]
when cmd_goals
segment1 = _INTL("\\ts[4]\\C[2]Land is the cradle of all\\n\\wt[5]We must ex\\wt[2]pand \\wt[2]its \\wt[2]sprawl")
when cmd_style
segment1 = _INTL("\\ts[4]\\C[2]Our uniforms are sleek\\n\\wt[5]Our style is \\wt[6]unique")
when cmd_strength
segment1 = _INTL("\\ts[4]\\C[2]No one can match our power\\n\\wt[5]We grow stronger \\wt[2]by \\wt[2]the \\wt[2]hour")
end
commands_confirm = [_INTL("Perfect"), _INTL("Let's try something else...")]
pbCallBubDown(2, event_id1) # Left
confirmed = pbMessage(segment1, commands_confirm) == 0
end
add_magma_song_segment(segment1)
pbCallBubUp(2, event_id2) # Right
pbMessage(_INTL("That's pretty good!"))
pbCallBubUp(2, event_id2) # Right
pbMessage(_INTL("The next line should talk about something that inspires us."))
cmd_leader = _INTL("Maxie")
cmd_land = _INTL("The land")
cmd_pokemon = _INTL("Pokémon")
commands = [cmd_leader, cmd_land, cmd_pokemon]
confirmed = false
while !confirmed
pbCallBubDown(2, event_id1) # Left
choice = pbMessage(_INTL("What should we sing about?"), commands)
pbCallBubUp(2, event_id2) # Right
pbMessage(_INTL("Hmm... How about this?"))
case commands[choice]
when cmd_leader
segment2 = _INTL("\\ts[4]\\C[2]Ma\\wt[2]xie's a visionary \\wt[5]\\nHis \\ts[2]intellect is \\wt[5]le\\wt[2]gen\\wt[2]da\\wt[4]ry")
when cmd_land
segment2 = _INTL("\\ts[4]\\C[2]The land is our domain\\wt[5]\\n\\ts[2]Magma flows \\wt[2]through \\wt[2]our \\wt[2]veins")
when cmd_pokemon
segment2 = _INTL("\\ts[4]\\C[2]Land Po\\wt[2]ké\\wt[2]mon by our side\\wt[5]\\nThe oceans \\ts[2]will soon sub\\wt[5]side")
end
commands_confirm = [_INTL("Perfect"), _INTL("Let's try something else...")]
pbCallBubDown(2, event_id1) # Left
confirmed = pbMessage(segment2, commands_confirm) == 0
end
add_magma_song_segment(segment2)
pbCallBubDown(2, event_id1) # Left
pbMessage(_INTL("Oh yeah that's pretty good."))
end
def build_magma_song_pt3(event_id1, event_id2)
confirmed = false
while !confirmed
pbCallBubUp(2, event_id2) # Right
pbMessage(_INTL("Now we only need an ending line. Do you have something in mind?"))
helpText = _INTL("The song's final line...")
line = pbEnterText(helpText, 2, 50)
pbCallBubUp(2, event_id2) # Right
commands = [_INTL("That's right!"), _INTL("Maybe not...")]
confirmed = pbMessage(_INTL("{1}... ?", line), commands) == 0
end
add_magma_song_segment(line)
end
def sing_magma_song
pbMEPlay("magma_theme_song")
lyrics = pbGet(VAR_MAGMA_SONG)
lyrics = [] unless lyrics.is_a?(Array)
for line in lyrics
pbMEPlay("magma_theme_song")
line = "\\ts[3]\\C[2]#{line}\\wtnp[20]"
pbCallBub(3)
pbMessage(line)
end
pbMEStop
end
def add_magma_song_segment(text)
current_song = pbGet(VAR_MAGMA_SONG)
current_song = [] unless current_song.is_a?(Array)
current_song << text
pbSet(VAR_MAGMA_SONG, current_song)
end
################################
def aquaCarvanhaQuestValidPokemon?(pokemon)
valid_species = isPartPokemon(pokemon, :ZUBAT) || isPartPokemon(pokemon, :GOLBAT) || isPartPokemon(pokemon, :CROBAT) ||
isPartPokemon(pokemon, :GEODUDE) || isPartPokemon(pokemon, :GRAVELER) || isPartPokemon(pokemon, :GOLEM)
is_water_type = pokemon.hasType?(:WATER)
echoln "#{pokemon.species}: valid species: #{valid_species}, waterType: #{is_water_type}"
return valid_species && is_water_type
end
# Check that there's 2 ZUBAT and 1 GEODUDE in party
def aquaCarvanhaPostValidation()
echoln pbGet(5)
nb_zubat = 0
nb_geodude = 0
target_nb_zubat = 2
target_nb_geodude = 1
$Trainer.party.each do |pokemon|
nb_zubat += 1 if isPartPokemon(pokemon, :ZUBAT) || isPartPokemon(pokemon, :GOLBAT) || isPartPokemon(pokemon, :CROBAT)
nb_geodude += 1 if isPartPokemon(pokemon, :GEODUDE) || isPartPokemon(pokemon, :GRAVELER) || isPartPokemon(pokemon, :GOLEM)
end
return nb_zubat == target_nb_zubat && nb_geodude == target_nb_geodude
end