mirror of
https://github.com/infinitefusion/infinitefusion-e18.git
synced 2025-12-06 06:01:46 +00:00
wip guess that fusion quiz
This commit is contained in:
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -157,6 +157,7 @@ def isTripleFusion?(num)
|
||||
return num >= Settings::ZAPMOLCUNO_NB
|
||||
end
|
||||
|
||||
|
||||
def getRandomCustomFusionForIntro(returnRandomPokemonIfNoneFound = true, customPokeList = [], maxPoke = -1, recursionLimit = 3)
|
||||
if customPokeList.length == 0
|
||||
customPokeList = getCustomSpeciesList(false )
|
||||
|
||||
156
Data/Scripts/050_AddOns/GuessPokemonQuiz.rb
Normal file
156
Data/Scripts/050_AddOns/GuessPokemonQuiz.rb
Normal file
@@ -0,0 +1,156 @@
|
||||
class FusionQuiz
|
||||
|
||||
#
|
||||
# Possible difficulties:
|
||||
#
|
||||
# :REGULAR -> 4 options choice
|
||||
#
|
||||
# :ADVANCED -> List of all pokemon
|
||||
#
|
||||
def initialize(difficulty = :REGULAR)
|
||||
@sprites = {}
|
||||
|
||||
@viewport = Viewport.new(0, 0, Graphics.width, Graphics.height)
|
||||
|
||||
@difficulty = difficulty
|
||||
@customs_list = getCustomSpeciesList(true, false)
|
||||
@selected_pokemon = nil
|
||||
@head_id = nil
|
||||
@body_id = nil
|
||||
@choices = []
|
||||
|
||||
@score = 0
|
||||
end
|
||||
|
||||
def start_quiz_round()
|
||||
pick_random_pokemon()
|
||||
show_fusion_picture(true)
|
||||
|
||||
#QUESTION 1
|
||||
new_question(500, "What Pokémon is this fusion's body?",@body_id,true)
|
||||
pbMessage("Next question!")
|
||||
new_question(500,"What Pokémon is this fusion's head?", @head_id,true)
|
||||
@viewport.dispose
|
||||
|
||||
show_fusion_picture(false )
|
||||
#QUESTION 1
|
||||
new_question(200, "What Pokémon is this fusion's body?",@body_id,true)
|
||||
pbMessage("Next question!")
|
||||
new_question(200,"What Pokémon is this fusion's head?", @head_id,true)
|
||||
@viewport.dispose
|
||||
|
||||
end
|
||||
|
||||
|
||||
def new_question(points_value,question, answer_id, should_generate_new_choices)
|
||||
answer_name = getPokemon(answer_id).real_name
|
||||
answered_correctly = give_answer(question,answer_id,should_generate_new_choices)
|
||||
award_points(points_value) if answered_correctly
|
||||
question_answer_followup_dialog(answered_correctly,answer_name,points_value,true)
|
||||
end
|
||||
|
||||
|
||||
|
||||
def award_points(nb_points)
|
||||
@score += nb_points
|
||||
end
|
||||
|
||||
def question_answer_followup_dialog(answered_correctly,correct_answer, points_awarded_if_win, other_chance_later=false)
|
||||
pbMessage("And the correct answer was...")
|
||||
pbMessage("...")
|
||||
pbMessage(_INTL("{1}!",correct_answer))
|
||||
if answered_correctly
|
||||
pbMessage("That's a correct answer!")
|
||||
pbMessage(_INTL("You're awarded {1} points your answer. Your current score is {2}",points_awarded_if_win,@score.to_s))
|
||||
else
|
||||
pbMessage("Unfortunately, you didn't get the answer right. ")
|
||||
pbMessage("But you'll get another chance later!") if other_chance_later
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
def show_fusion_picture(obscured = false)
|
||||
picturePath = get_fusion_sprite_path(@head_id, @body_id)
|
||||
bitmap = AnimatedBitmap.new(picturePath)
|
||||
bitmap.scale_bitmap(Settings::FRONTSPRITE_SCALE)
|
||||
previewwindow = PictureWindow.new(bitmap)
|
||||
previewwindow.y = 30
|
||||
previewwindow.x = 100
|
||||
previewwindow.z = 100000
|
||||
if obscured
|
||||
previewwindow.picture.pbSetColor(255, 255, 255, 200)
|
||||
end
|
||||
end
|
||||
|
||||
def pick_random_pokemon(save_in_variable = 1)
|
||||
random_pokemon = getRandomCustomFusionForIntro(true, @customs_list)
|
||||
@head_id = random_pokemon[0]
|
||||
@body_id = random_pokemon[1]
|
||||
@selected_pokemon = getSpeciesIdForFusion(@head_id, @body_id)
|
||||
pbSet(save_in_variable, @selected_pokemon)
|
||||
end
|
||||
|
||||
def give_answer(prompt_message,answer_id,should_generate_new_choices)
|
||||
question_answered=false
|
||||
answer_pokemon_name = getPokemon(answer_id).real_name
|
||||
|
||||
while !question_answered
|
||||
if @difficulty == :ADVANCED
|
||||
player_answer = prompt_pick_answer_advanced(prompt_message,answer_id)
|
||||
else
|
||||
player_answer = prompt_pick_answer_regular(prompt_message,answer_id,should_generate_new_choices)
|
||||
end
|
||||
confirmed = pbMessage("Is that your final answer?",["Yes","No"])
|
||||
if confirmed==0
|
||||
question_answered=true
|
||||
end
|
||||
end
|
||||
return player_answer == answer_pokemon_name
|
||||
end
|
||||
|
||||
def get_random_pokemon_from_same_egg_group(pokemon,previous_choices)
|
||||
egg_groups = getPokemonEggGroups(pokemon)
|
||||
while true
|
||||
new_pokemon = rand(NB_POKEMON+1)
|
||||
new_pokemon_egg_groups = getPokemonEggGroups(new_pokemon)
|
||||
if (egg_groups & new_pokemon_egg_groups).any? && !previous_choices.include?(new_pokemon)
|
||||
return new_pokemon
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
def prompt_pick_answer_regular(prompt_message,real_answer,should_new_choices)
|
||||
commands = should_new_choices ? generate_new_choices(real_answer) : @choices
|
||||
chosen = pbMessage(prompt_message,commands)
|
||||
#chosen = pbChooseList(commands, 0, nil, 1)
|
||||
return commands[chosen]
|
||||
end
|
||||
|
||||
def generate_new_choices(real_answer)
|
||||
choices = []
|
||||
choices << real_answer
|
||||
choices << get_random_pokemon_from_same_egg_group(real_answer,choices)
|
||||
choices << get_random_pokemon_from_same_egg_group(real_answer,choices)
|
||||
choices << get_random_pokemon_from_same_egg_group(real_answer,choices)
|
||||
|
||||
commands = []
|
||||
choices.each do |dex_num, i|
|
||||
species = getPokemon(dex_num)
|
||||
commands.push(species.real_name)
|
||||
end
|
||||
@choices = commands
|
||||
return commands.shuffle
|
||||
end
|
||||
|
||||
|
||||
def prompt_pick_answer_advanced(prompt_message,answer)
|
||||
choices.each do |dex_num, i|
|
||||
species = getPokemon(dex_num)
|
||||
commands.push([i, species.real_name, species.real_name])
|
||||
end
|
||||
pbMessage(prompt_message)
|
||||
#chosen = pbChooseList(commands, 0, nil, 1)
|
||||
|
||||
end
|
||||
|
||||
end
|
||||
@@ -140,7 +140,7 @@ def generateCurrentGalleryBattle(level = nil, number_of_pokemon = 3)
|
||||
|
||||
selected_battlers_idx = possible_battlers.sample(number_of_pokemon)
|
||||
party = []
|
||||
selected_battlers_idx.each { |species|
|
||||
selected_battlers_idx.each { |species|00
|
||||
party << Pokemon.new(species, level)
|
||||
}
|
||||
customTrainerBattle(spriter_name,
|
||||
@@ -159,6 +159,7 @@ def generateArtGallery(nbSpritesDisplayed = 6, saveArtistNameInVariable = 1, sav
|
||||
featuredArtist = artistName ? artistName : getRandomSpriteArtist(creditsMap, nbSpritesDisplayed)
|
||||
if featuredArtist
|
||||
if !creditsMap[featuredArtist] #try again if issue
|
||||
artistName = getRandomSpriteArtist(creditsMap, nbSpritesDisplayed)
|
||||
return generateArtGallery(nbSpritesDisplayed,saveSpritesInVariable,saveSpritesInVariable,saveSpritesInVariable,artistName)
|
||||
end
|
||||
featuredSprites = creditsMap[featuredArtist].shuffle.take(nbSpritesDisplayed)
|
||||
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Reference in New Issue
Block a user