mirror of
https://github.com/infinitefusion/infinitefusion-e18.git
synced 2026-11-03 08:15:47 +00:00
Release 6.9.0
This commit is contained in:
@@ -23,7 +23,7 @@ end
|
||||
def Kernel.getRoamingMap(roamingArrayPos)
|
||||
curmap = $PokemonGlobal.roamPosition[roamingArrayPos]
|
||||
mapinfos = $RPGVX ? load_data("Data/MapInfos.rvdata") : load_data("Data/MapInfos.rxdata")
|
||||
text = mapinfos[curmap].name #,(curmap==$game_map.map_id) ? _INTL("(this map)") : "")
|
||||
text = pbGetMessage(MessageTypes::MapNames, curmap) #,(curmap==$game_map.map_id) ? _INTL("(this map)") : "")
|
||||
return text
|
||||
end
|
||||
|
||||
@@ -63,4 +63,4 @@ end
|
||||
|
||||
def setForcedAltSprites(forcedSprites_map)
|
||||
$PokemonTemp.forced_alt_sprites = forcedSprites_map
|
||||
end
|
||||
end
|
||||
|
||||
@@ -82,9 +82,9 @@ def pbReceiveCosmeticsMoney(amount, showMessage=true, msgwindow=nil, goldwindow=
|
||||
|
||||
if showMessage
|
||||
if amount >= 0
|
||||
pbMessage(_INTL("{1} received {2} {3}!", $Trainer.name, amount.to_s_formatted, COSMETIC_CURRENCY_NAME))
|
||||
pbMessage(_INTL("{1} received {2} {3}!", $Trainer.name, amount.to_s_formatted, get_cosmetic_currency_name))
|
||||
else
|
||||
pbMessage(_INTL("{1} spent {2} {3}!", $Trainer.name, amount.abs.to_s_formatted, COSMETIC_CURRENCY_NAME))
|
||||
pbMessage(_INTL("{1} spent {2} {3}!", $Trainer.name, amount.abs.to_s_formatted, get_cosmetic_currency_name))
|
||||
end
|
||||
end
|
||||
|
||||
@@ -111,7 +111,7 @@ def pbReceiveCosmeticsMoney(amount, showMessage=true, msgwindow=nil, goldwindow=
|
||||
sign = amount >= 0 ? "+" : "-"
|
||||
goldwindow.text = _INTL(
|
||||
"{1}:\n<ar>{2}</ar>\n<ar><c3={3}>{4} {5}</c3></ar>",
|
||||
COSMETIC_CURRENCY_NAME,
|
||||
get_cosmetic_currency_name,
|
||||
current.to_s_formatted,
|
||||
color,
|
||||
sign,
|
||||
@@ -131,7 +131,7 @@ def pbReceiveCosmeticsMoney(amount, showMessage=true, msgwindow=nil, goldwindow=
|
||||
# Final display text
|
||||
goldwindow.text = _INTL(
|
||||
"{1}:\n<ar>{2}</ar>",
|
||||
COSMETIC_CURRENCY_NAME,
|
||||
get_cosmetic_currency_name,
|
||||
targetMoney.to_s_formatted
|
||||
)
|
||||
|
||||
|
||||
@@ -2,6 +2,11 @@ def unlock_easter_egg_hats()
|
||||
if $Trainer.name.downcase == "ash"
|
||||
$Trainer.hat = HAT_ASH
|
||||
$Trainer.unlock_hat(HAT_ASH)
|
||||
|
||||
$Trainer.clothes = CLOTHES_ASH
|
||||
|
||||
$Trainer.unlock_clothes(CLOTHES_ASH)
|
||||
$Trainer.unlock_clothes(CLOTHES_ASH_2)
|
||||
end
|
||||
if $Trainer.name.downcase == "frogman"
|
||||
$Trainer.hat = HAT_FROG
|
||||
@@ -96,7 +101,12 @@ def give_date_specific_hats()
|
||||
end
|
||||
end
|
||||
|
||||
class PokemonTemp
|
||||
attr_accessor :current_party
|
||||
attr_accessor :obtainable_outfits_from_team
|
||||
end
|
||||
|
||||
#Random chance of obtaining a hat related to the wild Pokemon you just defeated after a battle
|
||||
def check_obtain_hat_after_battle(species)
|
||||
hat_chance = 1
|
||||
if rand(1..100) <= hat_chance
|
||||
@@ -107,6 +117,35 @@ def check_obtain_hat_after_battle(species)
|
||||
end
|
||||
end
|
||||
|
||||
#Random chance of obtaining a hat related to the Pokemon in your team that took part in the battle after winning a Trainer battle
|
||||
def checkObtainClothesAfterBattle(battle_participants)
|
||||
clothes_chance = 1
|
||||
if rand(1..100) <= clothes_chance
|
||||
possible_outfits = list_obtainable_clothes_from_party(battle_participants)
|
||||
if possible_outfits && !possible_outfits.empty?
|
||||
pbMessage(_INTL("Huh? Your Pokémon found something during the battle..."))
|
||||
obtainClothes(possible_outfits.sample)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
def list_obtainable_clothes_from_party(battle_participants)
|
||||
species_list = []
|
||||
battle_participants.each do |pokemon|
|
||||
body_pokemon_id = get_body_species_from_symbol(pokemon.species).to_s.downcase
|
||||
head_pokemon_id = get_head_species_from_symbol(pokemon.species).to_s.downcase
|
||||
body_pokemon_tag = "pokemon-#{body_pokemon_id}"
|
||||
head_pokemon_tag = "pokemon-#{head_pokemon_id}"
|
||||
species_list << body_pokemon_tag unless species_list.include?(body_pokemon_tag)
|
||||
species_list << head_pokemon_tag unless species_list.include?(head_pokemon_tag)
|
||||
end
|
||||
echoln species_list
|
||||
return if species_list.empty?
|
||||
possible_clothes = search_clothes(species_list)
|
||||
possible_clothes = filter_clothes_only_not_owned(possible_clothes)
|
||||
return possible_clothes
|
||||
end
|
||||
|
||||
|
||||
def qmarkMaskCheck()
|
||||
if $Trainer.seen_qmarks_sprite
|
||||
|
||||
@@ -66,7 +66,7 @@ def convertAllPokemon()
|
||||
if $game_switches[SWITCH_RANDOM_TRAINERS] #randomized trainers
|
||||
Kernel.pbShuffleTrainers()
|
||||
end
|
||||
if $game_switches[956] #randomized pokemon
|
||||
if $game_switches[SWITCH_WILD_RANDOM_GLOBAL] #randomized pokemon
|
||||
range = pbGet(197) == nil ? 25 : pbGet(197)
|
||||
Kernel.pbShuffleDex(range, 1)
|
||||
end
|
||||
|
||||
@@ -115,6 +115,10 @@ def numeric_string?(str)
|
||||
str.match?(/\A\d+\z/)
|
||||
end
|
||||
|
||||
def titleize(str)
|
||||
str.split(/ |\_/).map(&:capitalize).join(" ")
|
||||
end
|
||||
|
||||
def timeDateGreaterThan(date1, date2)
|
||||
return (
|
||||
date1.year > date2.year ||
|
||||
|
||||
@@ -44,35 +44,35 @@ def get_egg_group_name(id)
|
||||
when 0;
|
||||
return nil
|
||||
when 1;
|
||||
return "Monster Pokémon"
|
||||
return _INTL("Monster Pokémon")
|
||||
when 2;
|
||||
return :"Aquatic Pokémon"
|
||||
return _INTL("Aquatic Pokémon")
|
||||
when 3;
|
||||
return :"Bug Pokémon"
|
||||
return _INTL("Bug Pokémon")
|
||||
when 4;
|
||||
return :"Bird Pokémon"
|
||||
return _INTL("Bird Pokémon")
|
||||
when 5;
|
||||
return :"Land Pokémon"
|
||||
return _INTL("Land Pokémon")
|
||||
when 6;
|
||||
return :"Cute Pokémon"
|
||||
return _INTL("Cute Pokémon")
|
||||
when 7;
|
||||
return :"Plant Pokémon"
|
||||
return _INTL("Plant Pokémon")
|
||||
when 8;
|
||||
return :"Human-like Pokémon"
|
||||
return _INTL("Human-like Pokémon")
|
||||
when 9;
|
||||
return :"Aquatic Pokémon"
|
||||
return _INTL("Aquatic Pokémon")
|
||||
when 10;
|
||||
return :"Mineral Pokémon"
|
||||
return _INTL("Mineral Pokémon")
|
||||
when 11;
|
||||
return :"Blob Pokémon"
|
||||
return _INTL("Blob Pokémon")
|
||||
when 12;
|
||||
return :"Fish Pokémon"
|
||||
return _INTL("Fish Pokémon")
|
||||
when 13;
|
||||
return :"Ditto"
|
||||
return _INTL("Ditto")
|
||||
when 14;
|
||||
return :"Dragon Pokémon"
|
||||
return _INTL("Dragon Pokémon")
|
||||
when 15;
|
||||
return :"Legendary Pokémon"
|
||||
return _INTL("Legendary Pokémon")
|
||||
end
|
||||
end
|
||||
|
||||
@@ -229,4 +229,4 @@ def getCustomSpeciesListForPokemon(dexNum,allowLegendaries=true)
|
||||
speciesList << dexNum
|
||||
end
|
||||
return speciesList
|
||||
end
|
||||
end
|
||||
|
||||
@@ -33,7 +33,7 @@ def floorHole(mapBelow, frames_for_fall = 8, bikeOnly = true)
|
||||
event.instance_variable_set(:@idle_frames, event.instance_variable_get(:@idle_frames) + 1)
|
||||
|
||||
frames_for_fall = 0 if bikeOnly && !$PokemonGlobal.bicycle
|
||||
|
||||
pbSEPlay("bw_fall")
|
||||
if event.instance_variable_get(:@idle_frames) >= frames_for_fall
|
||||
event.instance_variable_set(:@idle_frames, 0)
|
||||
|
||||
@@ -47,19 +47,50 @@ def floorHole(mapBelow, frames_for_fall = 8, bikeOnly = true)
|
||||
event.turn_left
|
||||
|
||||
pbWait(4)
|
||||
pbFadeOutIn {
|
||||
$game_temp.player_new_map_id = mapBelow
|
||||
$game_temp.player_new_x = target_x
|
||||
$game_temp.player_new_y = target_y
|
||||
pbCancelVehicles
|
||||
$scene.transfer_player
|
||||
$game_map.autoplay
|
||||
$game_map.refresh
|
||||
}
|
||||
playerFall(mapBelow, target_x, target_y)
|
||||
pbWait(8)
|
||||
end
|
||||
end
|
||||
|
||||
def floorHoleSameMap(x_offset,y_offset, frames_for_fall = 8, bikeOnly = true, relative_to_player=true,landing_animation = Settings::EXCLAMATION_ANIMATION_ID)
|
||||
return unless x_offset && y_offset
|
||||
if relative_to_player
|
||||
x = $game_player.x+x_offset
|
||||
y = $game_player.y+y_offset
|
||||
else
|
||||
x = x_offset
|
||||
y = y_offset
|
||||
end
|
||||
return if $game_player.moving?
|
||||
|
||||
event = this_event()
|
||||
event.instance_variable_set(:@idle_frames, 0) unless event.instance_variable_defined?(:@idle_frames)
|
||||
event.instance_variable_set(:@idle_frames, event.instance_variable_get(:@idle_frames) + 1)
|
||||
|
||||
frames_for_fall = 0 if bikeOnly && !$PokemonGlobal.bicycle
|
||||
if event.instance_variable_get(:@idle_frames) >= frames_for_fall
|
||||
event.instance_variable_set(:@idle_frames, 0)
|
||||
|
||||
# Find a passable landing tile on the target map
|
||||
target_x, target_y = findPassableLanding($game_map.map_id, x, y)
|
||||
return unless target_x
|
||||
|
||||
pbSEPlay("Slash")
|
||||
playAnimation(Settings::EXCLAMATION_ANIMATION_ID, $game_player.x, $game_player.y)
|
||||
event.direction_fix = false
|
||||
event.turn_left
|
||||
|
||||
pbWait(4)
|
||||
playerFall($game_map.map_id, target_x, target_y, landing_animation)
|
||||
event.turn_down
|
||||
event.direction_fix = true
|
||||
pbWait(8)
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
|
||||
|
||||
# Loads the target map and spirals outward from (start_x, start_y)
|
||||
# until a passable tile is found. Returns [x, y] or [nil, nil].
|
||||
def findPassableLanding(map_id, start_x, start_y, max_radius = 10)
|
||||
@@ -205,3 +236,175 @@ def pokedex_check
|
||||
return missing
|
||||
end
|
||||
|
||||
def replace_water_autotile(target_base_id = 240)
|
||||
map = $MapFactory.getMap($game_map.map_id)
|
||||
tiles_per_autotile = TilemapRenderer::TILES_PER_AUTOTILE rescue 48
|
||||
|
||||
for x in 0..map.width - 1
|
||||
for y in 0..map.height - 1
|
||||
for z in [2, 1, 0]
|
||||
tile_id = map.data[x, y, z]
|
||||
next unless tile_id && tile_id > 0
|
||||
|
||||
terrain_tag = GameData::TerrainTag.try_get(map.terrain_tags[tile_id]) if map.terrain_tags
|
||||
if terrain_tag && terrain_tag.can_surf
|
||||
shape_index = tile_id % tiles_per_autotile
|
||||
new_tile_id = target_base_id + shape_index
|
||||
if map.data[x, y, z] != new_tile_id
|
||||
echoln "(#{x},#{y},#{z}): #{tile_id} -> #{new_tile_id}"
|
||||
map.set_tile(x, y, z, new_tile_id)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
#checks each of the events passed as ID to see if a berry of a specific type has been planted
|
||||
# @return
|
||||
# -1 : Berry not found
|
||||
# 0 : Berry found, not grown
|
||||
# 1 : Berry found, fully grown
|
||||
def check_event_for_berries(wanted_berry_type, variable_result,variable_quantity, events_list = [])
|
||||
quantity_found = 0
|
||||
found_berry= false
|
||||
found_full_grown = false
|
||||
events_list.each do |event_id|
|
||||
berry_data = $PokemonGlobal.eventvars[[$game_map.map_id, event_id]]
|
||||
if berry_data
|
||||
berry_type = berry_data[1]
|
||||
growth_stage= berry_data[0]
|
||||
if berry_type == wanted_berry_type
|
||||
found_berry = true
|
||||
quantity_found+=1
|
||||
if growth_stage == 5
|
||||
found_full_grown = true
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
pbSet(variable_quantity, quantity_found)
|
||||
if found_full_grown
|
||||
pbSet(variable_result, 1) if found_full_grown
|
||||
elsif found_berry
|
||||
pbSet(variable_result, 0) if found_berry
|
||||
else
|
||||
pbSet(variable_result, -1)
|
||||
end
|
||||
return found_berry
|
||||
end
|
||||
|
||||
def berryMasterRandomBerry(rare_berries_only=false)
|
||||
rare_berries = [ :GREPABERRY, :HONDEWBERRY, :KELPSYBERRY, :MAGOSTBERRY, :NOMELBERRY, :POMEGBERRY,
|
||||
:QUALOTBERRY, :RABUTABERRY, :TAMATOBERRY,
|
||||
|
||||
:SPELONBERRY, :PAMTREBERRY, :WATMELBERRY, :DURINBERRY, :BELUEBERRY, # given by the wife in the originals
|
||||
]
|
||||
normal_berries = [ :ASPEARBERRY, :CHERIBERRY, :CHESTOBERRY, :LEPPABERRY, :LUMBERRY, :ORANBERRY,
|
||||
:PECHABERRY, :PERSIMBERRY, :RAWSTBERRY, :SITRUSBERRY]
|
||||
|
||||
berries_list = rare_berries_only ? rare_berries : (rare_berries + normal_berries)
|
||||
berry = berries_list.sample
|
||||
pbReceiveItem(berry)
|
||||
end
|
||||
|
||||
def last_map_position_smell_npc
|
||||
last_map = $Trainer.last_visited_town_map_location
|
||||
case last_map
|
||||
when MAP_MT_CHIMNEY
|
||||
when MAP_ROUTE_112
|
||||
when MAP_ROUTE_112_NORTH
|
||||
when MAP_JAGGED_PASS
|
||||
pbCallBub(2,@event_id)
|
||||
pbMessage(_INTL("Sniff...\nUm... You, uh... smell singed."))
|
||||
pbCallBub(2,@event_id)
|
||||
pbMessage(_INTL("Were you at a volcano or something?"))
|
||||
when MAP_DESERT
|
||||
when MAP_ROUTE_113
|
||||
when MAP_FALLARBOR
|
||||
pbCallBub(2,@event_id)
|
||||
pbMessage(_INTL("Sniff...\nUm... You, uh... smell like dust."))
|
||||
pbCallBub(2,@event_id)
|
||||
pbMessage(_INTL("Were you in a desert or something?"))
|
||||
when MAP_RUSTURF_TUNNEL
|
||||
when MAP_SHOAL_CAVE
|
||||
when MAP_METEOR_FALLS
|
||||
when MAP_DESERT_UNDERPASS
|
||||
when MAP_GRANITE_CAVE
|
||||
pbCallBub(2,@event_id)
|
||||
pbMessage(_INTL("Sniff...\nUm... You, uh... smell damp."))
|
||||
pbCallBub(2,@event_id)
|
||||
pbMessage(_INTL("Were you in a cave or something?"))
|
||||
when MAP_RUSTBORO
|
||||
pbCallBub(2,@event_id)
|
||||
pbMessage(_INTL("Sniff...\nUm... You, uh... smell like rust."))
|
||||
pbCallBub(2,@event_id)
|
||||
pbMessage(_INTL("Were you in an old city or something?"))
|
||||
when MAP_MAUVILLE
|
||||
pbCallBub(2,@event_id)
|
||||
pbMessage(_INTL("Sniff...\nUm... You, uh... smell like ozone."))
|
||||
pbCallBub(2,@event_id)
|
||||
pbMessage(_INTL("Were you near a power plant or something?"))
|
||||
when MAP_DEWFORD
|
||||
when MAP_SLATEPORT
|
||||
when MAP_MOSSDEEP
|
||||
when MAP_SOOTOPOLIS
|
||||
when MAP_PACIFIDLOG
|
||||
when MAP_AQUA_CAMP
|
||||
when MAP_ROUTE_104_SOUTH
|
||||
when MAP_ROUTE_105
|
||||
when MAP_ROUTE_106
|
||||
when MAP_ROUTE_107
|
||||
when MAP_ROUTE_108
|
||||
when MAP_ROUTE_109
|
||||
pbCallBub(2,@event_id)
|
||||
pbMessage(_INTL("Sniff...\nUm... You, uh... smell like brine."))
|
||||
pbCallBub(2,@event_id)
|
||||
pbMessage(_INTL("Were you at the beach or something?"))
|
||||
else
|
||||
pbCallBub(2,@event_id)
|
||||
pbMessage(_INTL("Sniff...\nUm... You, uh... smell like the rainforest."))
|
||||
pbCallBub(2,@event_id)
|
||||
pbMessage(_INTL("Ah, the smell of home!"))
|
||||
end
|
||||
end
|
||||
#
|
||||
DIRECTION_ARROWS = {
|
||||
left: "←",
|
||||
right: "→",
|
||||
down: "↓",
|
||||
up: "↑"
|
||||
}
|
||||
def direction_sign(**directions)
|
||||
lines = []
|
||||
directions.each do |key, label|
|
||||
arrow = DIRECTION_ARROWS[key]
|
||||
next if arrow.nil? || label.nil?
|
||||
lines << "#{arrow} #{label}"
|
||||
end
|
||||
pbMessage(lines.join("\n"))
|
||||
end
|
||||
|
||||
|
||||
# map = $MapFactory.getMap($game_map.map_id)
|
||||
#
|
||||
# erased_tiles = []
|
||||
# for tile in tiles_to_cut
|
||||
# for map_layer in [2, 1, 0]
|
||||
# tile_id = map.data[tile[1], tile[2], map_layer]
|
||||
# cut_tile_id = tile_id -8
|
||||
# next if tile_id == nil
|
||||
# tile_tag = GameData::TerrainTag.try_get(map.terrain_tags[tile_id])
|
||||
# next unless tile_tag.battle_environment == :Grass
|
||||
# map.erase_tile(tile[1], tile[2], map_layer)
|
||||
# unless tile_tag.id == :CutGrass
|
||||
# map.set_tile(tile[1], tile[2], map_layer,cut_tile_id)
|
||||
# end
|
||||
# erased_tiles << tile
|
||||
# end
|
||||
# end
|
||||
# unless erased_tiles.empty?
|
||||
# pbSEPlay("Cut", 80)
|
||||
# $scene.spriteset.addUserAnimation(Settings::CUT_TREE_ANIMATION_ID, $game_player.x, $game_player.y, false, 1)
|
||||
# end
|
||||
@@ -58,11 +58,11 @@ def player_on_hidden_ability_map
|
||||
end
|
||||
|
||||
def getCurrentHiddenAbilityMapName
|
||||
return getMapName(pbGet(VAR_CURRENT_HIDDEN_MAP)).to_s
|
||||
return pbGetMessage(MessageTypes::MapNames, pbGet(VAR_CURRENT_HIDDEN_MAP)).to_s
|
||||
end
|
||||
|
||||
def getMapName(id)
|
||||
mapinfos = pbLoadMapInfos
|
||||
return _INTL("Unknown location") if !mapinfos[id]
|
||||
return mapinfos[id].name
|
||||
end
|
||||
return pbGetMessage(MessageTypes::MapNames, id).to_s
|
||||
end
|
||||
|
||||
@@ -275,6 +275,11 @@ ItemHandlers::UseInField.add(:SPAWNER, proc { |item|
|
||||
spawn_ow_pokemon(species.species,5,1)
|
||||
})
|
||||
|
||||
ItemHandlers::UseInField.add(:DEBUGSPONGE, proc { |item|
|
||||
replace_water_autotile_by_seafloor
|
||||
})
|
||||
|
||||
|
||||
def useSleepingBag()
|
||||
currentSecondsValue = pbGet(UnrealTime::EXTRA_SECONDS)
|
||||
choices = [_INTL("1 hour"), _INTL("6 hours"), _INTL("12 hours"), _INTL("24 hours"), _INTL("Cancel")]
|
||||
@@ -308,7 +313,7 @@ def useSleepingBag()
|
||||
time = pbGetTimeNow.strftime("%I:%M %p")
|
||||
newDay = getDayOfTheWeek()
|
||||
if newDay != oldDay
|
||||
Kernel.pbMessage(_INTL("The current time is now {1} on {2}.", time, newDay.downcase.capitalize))
|
||||
Kernel.pbMessage(_INTL("The current time is now {1} on {2}.", time, getDayOfTheWeekName(newDay)))
|
||||
else
|
||||
Kernel.pbMessage(_INTL("The current time is now {1}.", time))
|
||||
end
|
||||
@@ -344,7 +349,7 @@ def useFieldSleepingBag()
|
||||
time = pbGetTimeNow.strftime("%I:%M %p")
|
||||
newDay = getDayOfTheWeek()
|
||||
if newDay != oldDay
|
||||
Kernel.pbMessage(_INTL("The current time is now {1} on {2}.", time, newDay.downcase.capitalize))
|
||||
Kernel.pbMessage(_INTL("The current time is now {1} on {2}.", time, getDayOfTheWeekName(newDay)))
|
||||
else
|
||||
Kernel.pbMessage(_INTL("The current time is now {1}.", time))
|
||||
end
|
||||
@@ -649,13 +654,17 @@ def useAquaUniform()
|
||||
return 1
|
||||
end
|
||||
|
||||
|
||||
def useDreamMirror
|
||||
visitedMap = $PokemonGlobal.visitedMaps[pbGet(226)]
|
||||
map_name = visitedMap ? getMapName(pbGet(226)).to_s : _INTL("an unknown location")
|
||||
map_id = pbGet(226)
|
||||
visitedMap = $PokemonGlobal.visitedMaps[map_id]
|
||||
|
||||
if visitedMap
|
||||
map_name = pbGetMessage(MessageTypes::MapNames, map_id).to_s
|
||||
else
|
||||
map_name = _INTL("an unknown location")
|
||||
end
|
||||
|
||||
Kernel.pbMessage(_INTL("You peeked into the Dream Mirror..."))
|
||||
|
||||
Kernel.pbMessage(_INTL("You can see a faint glimpse of {1} in the reflection.", map_name))
|
||||
end
|
||||
|
||||
@@ -2177,7 +2186,7 @@ def track_pokemon()
|
||||
mapinfos = $RPGVX ? load_data("Data/MapInfos.rvdata") : load_data("Data/MapInfos.rxdata")
|
||||
currently_roaming.each do |roamer_id|
|
||||
map_id = $PokemonGlobal.roamPosition[roamer_id]
|
||||
map_name = mapinfos[map_id].name
|
||||
map_name = pbGetMessage(MessageTypes::MapNames, map_id)
|
||||
weather_type = Settings::ROAMING_SPECIES[roamer_id][6]
|
||||
case weather_type
|
||||
when :Storm
|
||||
|
||||
@@ -33,7 +33,7 @@ end
|
||||
|
||||
def showRandomRareMoveConditionExample(legendary = false)
|
||||
example = legendary ? getlegendaryConditionExample : getRegularConditionExample
|
||||
text = "For example, " + example
|
||||
text = _INTL("For example, ") + example
|
||||
pbMessage(text)
|
||||
end
|
||||
|
||||
|
||||
@@ -24,10 +24,12 @@ end
|
||||
|
||||
|
||||
def berry_contest_results(player_score)
|
||||
contestants = {"Evelyn" => rand(5..8),
|
||||
"Martin" => rand(4..8),
|
||||
"Sarah" => rand(3..5)}
|
||||
contestants = {
|
||||
_INTL("Evelyn") => rand(5..8),
|
||||
_INTL("Martin") => rand(4..8),
|
||||
_INTL("Sarah") => rand(3..5)
|
||||
}
|
||||
contestants[$Trainer.name] = player_score
|
||||
results = contestants.sort_by { |name, score| score }
|
||||
return results
|
||||
end
|
||||
end
|
||||
|
||||
@@ -19,6 +19,72 @@ def turnEventTowardsEvent(turning, turnedTowards)
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
def moveEventTowardsEvent(turning, turnedTowards)
|
||||
if turnedTowards.is_a?(Integer)
|
||||
turnedTowards = $game_map.events[turnedTowards]
|
||||
end
|
||||
if turning.is_a?(Integer)
|
||||
turning = $game_map.events[turning]
|
||||
end
|
||||
|
||||
event_x = turnedTowards.x
|
||||
event_y = turnedTowards.y
|
||||
dx = event_x - turning.x
|
||||
dy = event_y - turning.y
|
||||
|
||||
# Already next to it
|
||||
if (dx == 0 && dy.abs == 1) || (dy == 0 && dx.abs == 1)
|
||||
turnEventTowardsEvent(turning, turnedTowards)
|
||||
return
|
||||
end
|
||||
if turning.x < event_x
|
||||
turning.move_right
|
||||
elsif turning.x > event_x
|
||||
turning.move_left
|
||||
elsif turning.y < event_y
|
||||
turning.move_down
|
||||
elsif turning.y > event_y
|
||||
turning.move_up
|
||||
end
|
||||
end
|
||||
|
||||
def moveEventAwayFromEvent(moving, movingAwayFrom)
|
||||
if movingAwayFrom.is_a?(Integer)
|
||||
movingAwayFrom = $game_map.events[movingAwayFrom]
|
||||
end
|
||||
if moving.is_a?(Integer)
|
||||
moving = $game_map.events[moving]
|
||||
end
|
||||
|
||||
event_x = movingAwayFrom.x
|
||||
event_y = movingAwayFrom.y
|
||||
dx = moving.x - event_x
|
||||
dy = moving.y - event_y
|
||||
|
||||
# Move in whichever axis has the larger distance, away from the target
|
||||
if dx.abs >= dy.abs
|
||||
if moving.x < event_x
|
||||
moving.move_left
|
||||
elsif moving.x > event_x
|
||||
moving.move_right
|
||||
elsif moving.y < event_y
|
||||
moving.move_up
|
||||
elsif moving.y > event_y
|
||||
moving.move_down
|
||||
end
|
||||
else
|
||||
if moving.y < event_y
|
||||
moving.move_up
|
||||
elsif moving.y > event_y
|
||||
moving.move_down
|
||||
elsif moving.x < event_x
|
||||
moving.move_left
|
||||
elsif moving.x > event_x
|
||||
moving.move_right
|
||||
end
|
||||
end
|
||||
end
|
||||
def resetFrames(event)
|
||||
if event.is_a?(Integer)
|
||||
event = $game_map.events[event]
|
||||
@@ -147,9 +213,9 @@ def kick_ball(eventId, obstacleName = nil, targetDestination = nil, targetSwitch
|
||||
# Shorter kick distance — scales gently with speed
|
||||
player_speed = $game_player.move_speed
|
||||
remaining_distance = [player_speed * 0.8, 1].max.floor
|
||||
|
||||
pbSEPlay("jump", 80, 100) rescue nil
|
||||
pbSEPlay("kick_ball", 80, 100) rescue nil
|
||||
pbWait(3)
|
||||
pbSEPlay("jump", 80, 100) rescue nil
|
||||
|
||||
current_dir = dir
|
||||
total_bounces = 0
|
||||
@@ -279,8 +345,6 @@ def sit_on_chair
|
||||
$game_player.direction_fix = false
|
||||
else
|
||||
passable = $game_map.passable?($game_player.x, $game_player.y, direction)
|
||||
dest_x = $game_player.x + (direction == 6 ? 1 : direction == 4 ? -1 : 0)
|
||||
dest_y = $game_player.y + (direction == 2 ? 1 : direction == 8 ? -1 : 0)
|
||||
if passable #&& !$game_map.event_at_position(dest_x, dest_y) #todo Meant to make it so that you can't get stuck, but also prevents from interacting with
|
||||
$game_player.turn_generic(direction)
|
||||
$game_player.jump_forward
|
||||
@@ -307,16 +371,39 @@ def checkInputDirection
|
||||
return nil
|
||||
end
|
||||
|
||||
SWITCH_ON_BOAT = 2214
|
||||
def getOnBoat
|
||||
$game_switches[SWITCH_ON_BOAT] = true
|
||||
set_player_graphics("boat_briney_peeko")
|
||||
$PokemonTemp.prevent_ow_battles = true
|
||||
$PokemonGlobal.boat = true
|
||||
end
|
||||
|
||||
def tile_is_water?(x, y, map = $game_map)
|
||||
return false if !map.valid?(x, y)
|
||||
tag = map.terrain_tag(x, y)
|
||||
return !!(tag && tag.can_surf)
|
||||
end
|
||||
|
||||
def tile_passable_or_water(x, y, map = $game_map)
|
||||
return false if !map.valid?(x, y)
|
||||
map.events.each_value do |event|
|
||||
next if !event.at_coordinate?(x, y) || event.through
|
||||
return false if event.character_name != ""
|
||||
end
|
||||
terrain_tag = map.terrain_tag(x, y)
|
||||
return true if terrain_tag && terrain_tag.can_surf
|
||||
[2, 4, 6, 8].each do |d|
|
||||
return true if map.passable?(x, y, d)
|
||||
end
|
||||
return false
|
||||
end
|
||||
|
||||
def getOffBoat
|
||||
reset_player_graphics
|
||||
$PokemonTemp.prevent_ow_battles = false
|
||||
$PokemonGlobal.boat = false
|
||||
$game_switches[SWITCH_ON_BOAT] = false
|
||||
$game_map.refresh
|
||||
end
|
||||
|
||||
@@ -414,6 +501,22 @@ def clefairy_minigame(length = 4, clefairy_event_id = nil)
|
||||
end
|
||||
end
|
||||
|
||||
def getEventsInRadius(radius = 5)
|
||||
player_x = $game_player.x
|
||||
player_y = $game_player.y
|
||||
nearby_events = []
|
||||
|
||||
$game_map.events.each_value do |event|
|
||||
next if event.nil? || !event.active?
|
||||
distance = Math.sqrt((event.x - player_x)**2 + (event.y - player_y)**2)
|
||||
if distance <= radius
|
||||
nearby_events << event
|
||||
end
|
||||
end
|
||||
return nearby_events
|
||||
end
|
||||
|
||||
|
||||
# Switch 20
|
||||
def isDebugMode()
|
||||
return $DEBUG
|
||||
@@ -474,7 +577,7 @@ def get_random_trend
|
||||
end
|
||||
|
||||
def trendSet(option1, option2)
|
||||
choice = pbMessage(_INTL("What do you think? Do you think any of these have any potential?"), [_INTL("Not really..."), "#{option1} is pretty cool!", "I like #{option2}!"])
|
||||
choice = pbMessage(_INTL("What do you think? Do you think any of these have any potential?"), [_INTL("Not really..."), _INTL("{1} is pretty cool!", option1), _INTL("I like {1}!", option2)])
|
||||
case choice
|
||||
when 0
|
||||
return false
|
||||
@@ -692,3 +795,98 @@ def getRandomUnisexName
|
||||
return RandTrainerNames_unisex.sample
|
||||
end
|
||||
|
||||
def playAnimationAroundPlayer(animation_id, radius, only_passable = false)
|
||||
player_x = $game_player.x
|
||||
player_y = $game_player.y
|
||||
valid_tiles = []
|
||||
|
||||
(-radius..radius).each do |dx|
|
||||
(-radius..radius).each do |dy|
|
||||
next if Math.sqrt(dx**2 + dy**2) > radius
|
||||
target_x = player_x + dx
|
||||
target_y = player_y + dy
|
||||
next unless $game_map.valid?(target_x, target_y)
|
||||
if only_passable
|
||||
next unless $game_player.passable?(target_x, target_y, 0)
|
||||
end
|
||||
valid_tiles << [target_x, target_y]
|
||||
end
|
||||
end
|
||||
return if valid_tiles.empty?
|
||||
|
||||
selected_x, selected_y = valid_tiles.sample
|
||||
playAnimation(animation_id, selected_x, selected_y)
|
||||
end
|
||||
|
||||
|
||||
def playerFall(mapBelow, target_x, target_y, landing_animation=DUST_ANIMATION_ID)
|
||||
$game_player.walk_anime =false
|
||||
$game_player.direction_fix =true
|
||||
$game_player.move_speed_override = 5
|
||||
$game_player.through = true
|
||||
|
||||
pbWait(4)
|
||||
pbFadeOutIn {
|
||||
$game_temp.player_new_map_id = mapBelow
|
||||
$game_temp.player_new_x = target_x
|
||||
$game_temp.player_new_y = target_y-4
|
||||
pbCancelVehicles
|
||||
$scene.transfer_player
|
||||
$game_map.autoplay
|
||||
$game_map.refresh
|
||||
}
|
||||
pbSEPlay("bw_fall")
|
||||
$game_player.move_down
|
||||
$game_player.move_down
|
||||
$game_player.move_down
|
||||
$game_player.move_down
|
||||
pbWait(16)
|
||||
pbSEPlay("Earth3")
|
||||
playAnimation(landing_animation,$game_player.x,$game_player.y)
|
||||
$game_screen.start_shake(2, 8, 8)
|
||||
|
||||
$game_player.walk_anime =true
|
||||
$game_player.direction_fix =false
|
||||
$game_player.move_speed_override = nil
|
||||
$game_player.through = false
|
||||
|
||||
end
|
||||
|
||||
def playerLift(mapAbove, target_x, target_y, lift_animation=nil)
|
||||
$game_player.walk_anime =false
|
||||
$game_player.direction_fix =true
|
||||
$game_player.move_speed_override = 6
|
||||
$game_player.through = true
|
||||
pbWait(4)
|
||||
|
||||
playAnimation(lift_animation, $game_player.x, $game_player.y) if lift_animation
|
||||
|
||||
pbWait(1)
|
||||
$game_player.move_up
|
||||
$game_player.move_up
|
||||
$game_player.move_up
|
||||
$game_player.move_up
|
||||
$game_player.move_up
|
||||
$game_player.move_up
|
||||
pbWait(16)
|
||||
pbFadeOutIn {
|
||||
$game_temp.player_new_map_id = mapAbove
|
||||
$game_temp.player_new_x = target_x
|
||||
$game_temp.player_new_y = target_y
|
||||
pbCancelVehicles
|
||||
$scene.transfer_player
|
||||
$game_map.autoplay
|
||||
$game_map.refresh
|
||||
}
|
||||
|
||||
playAnimation(DUST_ANIMATION_ID,$game_player.x,$game_player.y)
|
||||
pbSEPlay("Earth3")
|
||||
|
||||
$game_screen.start_shake(2, 8, 8)
|
||||
|
||||
$game_player.walk_anime =true
|
||||
$game_player.direction_fix =false
|
||||
$game_player.move_speed_override = nil
|
||||
$game_player.through = false
|
||||
|
||||
end
|
||||
|
||||
@@ -29,7 +29,9 @@ def find_random_tall_grass_coordinates_near_player(width,height,variance,max_nb_
|
||||
encounter_type = :Land1 if terrain.id == :Grass_alt1
|
||||
encounter_type = :Land2 if terrain.id == :Grass_alt2
|
||||
encounter_type = :Land3 if terrain.id == :Grass_alt3
|
||||
encounter_type = :Land4 if terrain.id == :Grass_alt4
|
||||
encounter_type = :TallGrass if terrain.id == :TallGrass
|
||||
encounter_type = :Puddle if terrain.id == :Puddle
|
||||
|
||||
return [x,y],encounter_type
|
||||
end
|
||||
@@ -110,4 +112,5 @@ def showLocation(map_name=nil)
|
||||
LocationWindow.new($game_map.name)
|
||||
scene.spriteset.addUserSprite(LocationWindow.new(map_name))
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
@@ -294,16 +294,15 @@ class PokemonPokedexInfo_Scene
|
||||
end
|
||||
end
|
||||
|
||||
SHARED_BODIES = {}
|
||||
SHARED_BODIES = {
|
||||
:SHELLOS_E => :SHELLOS_W,
|
||||
:SHELLOS_W => :SHELLOS_E,
|
||||
:GASTRODON_E => :GASTRODON_W,
|
||||
:GASTRODON_W => :GASTRODON_E
|
||||
}
|
||||
SHARED_HEADS = {}
|
||||
def get_shared_bodies
|
||||
#return SHARED_BODIES
|
||||
return {
|
||||
GameData::Species.get(NB_POKEMON-3).species => GameData::Species.get(NB_POKEMON-1).species,
|
||||
GameData::Species.get(NB_POKEMON-1).species => GameData::Species.get(NB_POKEMON-3).species,
|
||||
GameData::Species.get(NB_POKEMON-2).species => GameData::Species.get(NB_POKEMON).species,
|
||||
GameData::Species.get(NB_POKEMON).species => GameData::Species.get(NB_POKEMON-2).species,
|
||||
}
|
||||
return SHARED_BODIES
|
||||
end
|
||||
|
||||
def get_shared_heads
|
||||
@@ -505,14 +504,14 @@ class PokemonPokedexInfo_Scene
|
||||
end
|
||||
|
||||
def pbChooseAlt(brief = false)
|
||||
if @available.size <= 1
|
||||
pbPlayBuzzerSE
|
||||
return
|
||||
end
|
||||
checkSpritesPageTutorial
|
||||
@selecting_sprites = true
|
||||
updateBlackListInstructionIcons
|
||||
update_blacklist_icons if @selecting_blacklist
|
||||
if @available.size <= 0
|
||||
pbPlayBuzzerSE
|
||||
return
|
||||
end
|
||||
loop do
|
||||
Graphics.update
|
||||
Input.update
|
||||
|
||||
@@ -21,10 +21,10 @@ def get_constellation_variable(pokemon)
|
||||
# when :LUGIA; return VAR_CONSTELLATION_LUGIA
|
||||
# when :HOOH; return VAR_CONSTELLATION_HOOH
|
||||
# when :CELEBI; return VAR_CONSTELLATION_CELEBI
|
||||
# when :SLAKING; return VAR_CONSTELLATION_SLAKING
|
||||
# when :JIRACHI; return VAR_CONSTELLATION_JIRACHI
|
||||
when :SLAKING; return VAR_CONSTELLATION_SLAKING
|
||||
when :JIRACHI; return VAR_CONSTELLATION_JIRACHI
|
||||
# when :TYRANTRUM; return VAR_CONSTELLATION_TYRANTRUM
|
||||
# when :SHARPEDO; return VAR_CONSTELLATION_SHARPEDO
|
||||
when :SHARPEDO; return VAR_CONSTELLATION_SHARPEDO
|
||||
# when :ARCEUS; return VAR_CONSTELLATION_ARCEUS
|
||||
end
|
||||
end
|
||||
@@ -42,4 +42,4 @@ def clear_all_images()
|
||||
# echoln i.to_s + " : " + $game_screen.pictures[i].name
|
||||
$game_screen.pictures[i].erase
|
||||
end
|
||||
end
|
||||
end
|
||||
@@ -240,7 +240,6 @@ class Sprite_Character
|
||||
def removeQuestIcon()
|
||||
@questIcon.dispose if @questIcon
|
||||
@questIcon = nil
|
||||
@character.show_quest_icon = false if @character.is_a?(Game_Event)
|
||||
end
|
||||
|
||||
end
|
||||
end
|
||||
@@ -74,7 +74,7 @@ end
|
||||
|
||||
def showNewSideQuestMessage(title, description, show_description)
|
||||
pbMEPlay("Voltorb Flip Win") if Settings::KANTO
|
||||
pbMEPlay("match_call") if Settings::HOENN
|
||||
pbMEPlay("quest_jingle") if Settings::HOENN
|
||||
|
||||
pbCallBub(3)
|
||||
Kernel.pbMessage(_INTL("\\C[6]NEW QUEST: ") + title)
|
||||
|
||||
@@ -17,7 +17,8 @@ QUEST_REWARDS = Settings::KANTO ? [
|
||||
QuestReward.new(5, :INCUBATOR, 1, _INTL("The note that came with it said that it allows you to hatch an egg instantly!")),
|
||||
QuestReward.new(10, :ITEMFINDER, 1, _INTL("There's a note with it. If there's a hidden item anywhere near you, that little thing will react to tell you.")),
|
||||
QuestReward.new(15, :INCUBATOR, 3, _INTL("Looks like they sent even more of these incubators for hatching Eggs. There must be a high-profile Pokémon breeder that's a fan of the show!")),
|
||||
QuestReward.new(20, :SLEEPINGBAG, 1, _INTL("There's a note with it. This deluxe sleeping bag will allow you to sleep anywhere you want. It's so comfortable that you can sleep in it for hours!")),
|
||||
#QuestReward.new(20, :SLEEPINGBAG, 1, _INTL("There's a note with it. This deluxe sleeping bag will allow you to sleep anywhere you want. It's so comfortable that you can sleep in it for hours!")),
|
||||
QuestReward.new(20, :LUCKYEGG, 1, _INTL("This time they sent a gift basket. It had this strange egg in it! I don't think it will hatch into a Pokémon...")),
|
||||
QuestReward.new(25, :LINKINGCORD, 1, _INTL("Apparently, this strange cable triggers the evolution of Pokémon that typically evolve via trade. I know you'll put it to good use!")),
|
||||
QuestReward.new(50, :MISTSTONE, 1, _INTL("This rare stone can evolve any Pokémon, regardless of their level or evolution method. Use it wisely!"), true),
|
||||
QuestReward.new(60, :GSBALL, 1, _INTL("This mysterious ball is rumored to be the key to call upon the protector of Ilex Forest. It's a precious relic.")),
|
||||
|
||||
@@ -178,7 +178,7 @@ QUESTS = {
|
||||
"legendary_meloetta_3" => Quest.new("legendary_meloetta_3", _INTL("A legendary band (Part 3)"), _INTL("The drummer from a legendary Pokéband wants you to find its former bandmates. There are rumors about strange music that was heard around the region."), "band_drummer", _INTL("Saffron City"), LegendaryQuestColor),
|
||||
"legendary_meloetta_4" => Quest.new("legendary_meloetta_4", _INTL("A legendary band (Part 4)"), _INTL("You assembled the full band! Come watch the show on Saturday night."), "BW117", _INTL("Saffron City"), LegendaryQuestColor),
|
||||
|
||||
"legendary_cresselia_1" => Quest.new(61, _INTL("Mysterious Lunar feathers"), _INTL("A mysterious entity asked you to collect Lunar Feathers for them. It said that they will come at night to tell you where to look. Whoever that may be..."), "lunarFeather", _INTL("Lavender Town"), LegendaryQuestColor),
|
||||
"legendary_cresselia_1" => Quest.new("legendary_cresselia_1", _INTL("Mysterious Lunar feathers"), _INTL("A mysterious entity asked you to collect Lunar Feathers for them. It said that they will come at night to tell you where to look. Whoever that may be..."), "lunarFeather", _INTL("Lavender Town"), LegendaryQuestColor),
|
||||
#removed
|
||||
#11 => Quest.new(11, "Powering the Lighthouse", "Catch some Voltorb to power up the lighthouse", QuestBranchHotels, "BW (43)", "Vermillion City", HotelQuestColor),
|
||||
}
|
||||
@@ -205,6 +205,9 @@ define_quest("main_league",:MAIN_QUEST,_INTL("Pokémon League Challenge"), _INTL
|
||||
define_quest("main_stolen_parts",:MAIN_QUEST,_INTL("Stolen Package"), _INTL("Recover a package stolen by Team Magma!"),_INTL("Rustboro City"),"NPC_Hoenn_MrStone")
|
||||
define_quest("main_steven_letter",:MAIN_QUEST,_INTL("Steven's Letter"), _INTL("Deliver a letter from the Devon Corp. president to Steven in Granite Cave. "),_INTL("Granite Cave"),"NPC_Hoenn_MrStone",MAP_DEWFORD)
|
||||
define_quest("main_devon_parts",:MAIN_QUEST,_INTL("Devon Parts Delivery"), _INTL("Deliver the Devon Parts to the Shipyard in Slateport City."),_INTL("Slateport City"),"NPC_Hoenn_MrStone",MAP_SLATEPORT)
|
||||
define_quest("main_meteor_falls",:MAIN_QUEST,_INTL("Find Professor Cozmo"), _INTL("Find Professor Cozmo in Meteor Falls."),_INTL("Meteor Falls"),"NPC_Hoenn_AromaLady",MAP_METEOR_FALLS)
|
||||
define_quest("mt_chimney_aqua",:MAIN_QUEST,_INTL("Stop Team Magma!"), _INTL("Team Magma wants to use the Meteorite's power at Mt. Chimney. They need to be stopped before it's too late."),_INTL("Mt. Chimney"),"NPC_Hoenn_Magma_Maxie",MAP_MT_CHIMNEY)
|
||||
define_quest("mt_chimney_magma",:MAIN_QUEST,_INTL("The Meteorite's Power"), _INTL("Go to Mt. Chimney to help Team Magma harness the power of the Meteorite."),_INTL("Mt. Chimney"),"NPC_Hoenn_Magma_Maxie",MAP_MT_CHIMNEY)
|
||||
|
||||
#SIDE QUESTS
|
||||
define_quest("template",:FIELD_QUEST,_INTL("Template Quest"), _INTL("Don't forget to change the quest ID if you copy paste this!"),_INTL("Unknown"),"000")
|
||||
@@ -284,7 +287,7 @@ define_quest("mauville_quests_7",:FIELD_QUEST,_INTL("Associate Producer! - Episo
|
||||
define_quest("mauville_magma",:MAGMA_QUEST,_INTL("The Element of Surprise!"), _INTL("Catch a Tynamo in the waters near New Mauville to catch Team Aqua by surprise."),_INTL("Mauville City"),"NPC_Hoenn_Magma_Grunt_M")
|
||||
define_quest("mauville_aqua",:AQUA_QUEST,_INTL("The Element of Surprise!"), _INTL("Catch a Tynamo in the waters near New Mauville to catch Team Magma by surprise."),_INTL("Mauville City"),"NPC_Hoenn_Aqua_Grunt_M")
|
||||
|
||||
#Route 111
|
||||
#Route 111 (South)
|
||||
define_quest("route111_winstrate",:FIELD_QUEST,_INTL("The Winstrate Family"), _INTL("Defeat all 4 members of the Winstrate family in back-to-back battles."),_INTL("Route 111"),"NPC_Hoenn_Pokefan_M")
|
||||
|
||||
#Verdanturf
|
||||
@@ -294,3 +297,29 @@ define_quest("verdanturf_nurse",:FIELD_QUEST,_INTL("The Bored Nurse"), _INTL("Th
|
||||
#Rusturf Tunnel
|
||||
define_quest("rusturf_trumpet",:FIELD_QUEST,_INTL("Uproar in B Flat"), _INTL("A trumpet player is cornered in Rusturf Tunnel. Find a way to help him!"),_INTL("Rusturf Tunnel"),"NPC_Hoenn_trumpet_playing")
|
||||
define_quest("evergrande_trumpet",:FIELD_QUEST,_INTL("The Trumpet Festival!"), _INTL("Find the 4 Trumpet Brothers and join the Trumpet Festival in Evergrande City."),_INTL("Evergrande City"),"NPC_Hoenn_trumpet_playing",MAP_EVERGRANDE)
|
||||
|
||||
#Route 112
|
||||
#Route 111 (North)
|
||||
define_quest("route111_cut",:FIELD_QUEST,_INTL("Lawnmower Mon"), _INTL("Use the move Cut in the field to get rid of the tall grass near the campsite."),_INTL("Route 111"),"NPC_Hoenn_Schoolmate_Senior")
|
||||
#Route 113
|
||||
define_quest("route113_sootgrass",:FIELD_QUEST,_INTL("Clear Out the Soot!"), _INTL("Get rid of the soot on every single patch of grass on Route 113."),_INTL("Route 113"),"NPC_oldman3")
|
||||
|
||||
#Fallarbor Town
|
||||
define_quest("fallarbor_berries",:FIELD_QUEST,_INTL("Fireproof Berries"), _INTL("Fallarbor Town residents cannot grow crops because of a Slugma infestation. Find fire-resistant berries for them to grow."),_INTL("Fallarbor Town"),"NPC_oldman3")
|
||||
|
||||
#Route 114
|
||||
define_quest("route114_roar",:FIELD_QUEST,_INTL("Hear Me Roar!"), _INTL("Use Roar outside of battles to get to the end of the tunnel on Route 114 without encountering a single Pokémon."),_INTL("Route 114"),"NPC_Hoenn_Gentleman")
|
||||
|
||||
#Desert
|
||||
define_quest("desert_caves",:FIELD_QUEST,_INTL("Find the lost Assistant!"), _INTL("An archeologist lost his assistant in the caves beneath the desert. Help him find him!"),_INTL("Mauville Desert"),"NPC_Hoenn_RuinManiac")
|
||||
|
||||
#Route 119
|
||||
define_quest("route_119_fishing",:FIELD_QUEST,_INTL("Fishing with Bait!"), _INTL("Fish up a Feebas with the Good Rod by placing a Blue Pokéblock in the water."),_INTL("Route 119"),"NPC_Hoenn_Fisherman")
|
||||
|
||||
#Safari Zone
|
||||
define_quest("safari_flowers",:FIELD_QUEST,_INTL("Safari Flowers"), _INTL("Unlock every area in the Safari Zone to scout for spots to plant flowers."),_INTL("Safari Zone"),"NPC_Hoenn_AromaLady")
|
||||
define_quest("safari_balls1",:FIELD_QUEST,_INTL("Bidoof Population Survey"), _INTL("Catch 5 Bidoof in the Safari Zone."),_INTL("Safari Zone"),"NPC_Hoenn_Ranger_F")
|
||||
define_quest("safari_balls2",:FIELD_QUEST,_INTL("Bibarel Population Survey"), _INTL("Catch 3 Bibarel in the Safari Zone."),_INTL("Safari Zone"),"NPC_Hoenn_Ranger_F")
|
||||
define_quest("safari_blocks1",:FIELD_QUEST,_INTL("Phanpy Population Survey"), _INTL("Catch 5 Phanpy in the Safari Zone."),_INTL("Safari Zone"),"NPC_Hoenn_Ranger_M")
|
||||
define_quest("safari_blocks2",:FIELD_QUEST,_INTL("Kangaskhan Population Survey"), _INTL("Catch 2 Kangaskhan in the Safari Zone."),_INTL("Safari Zone"),"NPC_Hoenn_Ranger_M")
|
||||
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
##=============================================================================
|
||||
## Easy Questing System - Refactored with Extensible Mode System
|
||||
## Original by M3rein
|
||||
# Refactored using by Claude
|
||||
# Adapted for Pokemon Infinite Fusion by chardub
|
||||
##=============================================================================
|
||||
## Main entry point for the quest log
|
||||
@@ -72,7 +71,7 @@ end
|
||||
|
||||
class CompletedQuestMode < QuestCategory
|
||||
def initialize
|
||||
super("Completed Quests", "Completed")
|
||||
super(_INTL("Completed Quests"), _INTL("Completed"))
|
||||
end
|
||||
def button_path
|
||||
return "Graphics/Pictures/eqi/quest_button_complete"
|
||||
@@ -90,7 +89,7 @@ end
|
||||
|
||||
class MainQuestMode < QuestCategory
|
||||
def initialize
|
||||
super("Main Quests", "Main Quests")
|
||||
super(_INTL("Main Quests"), _INTL("Main Quests"))
|
||||
end
|
||||
|
||||
def button_path
|
||||
@@ -107,7 +106,7 @@ end
|
||||
|
||||
class SideQuestMode < QuestCategory
|
||||
def initialize
|
||||
super("Side Quests", "Side Quests")
|
||||
super(_INTL("Side Quests"), _INTL("Side Quests"))
|
||||
end
|
||||
|
||||
def button_path
|
||||
@@ -830,9 +829,14 @@ class Questlog
|
||||
|
||||
pbDrawOutlineText(@main, 188, 54, 512, 384, quest.name,
|
||||
Color.new(255, 172, 115), Color.new(0, 0, 0))
|
||||
drawTextExMulti(@main, 188, 84, 318, 8, quest.desc,
|
||||
drawTextExMulti(@main, 188, 84, 318, 8, quest.desc.gsub(/\\n/, "\n"),
|
||||
Color.new(255, 255, 255), Color.new(0, 0, 0))
|
||||
pbDrawOutlineText(@main, 188, 330, 512, 384, quest.location,
|
||||
location_y = 330
|
||||
current_language = getCurrentLanguage
|
||||
if current_language == :CHINESE
|
||||
location_y += 10
|
||||
end
|
||||
pbDrawOutlineText(@main, 188, location_y, 512, 384, quest.location,
|
||||
Color.new(255, 172, 115), Color.new(0, 0, 0))
|
||||
|
||||
|
||||
@@ -912,4 +916,4 @@ class Questlog
|
||||
@viewport.dispose
|
||||
pbWait(1)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user