Files
infinitefusion-e18/Data/Scripts/998_InfiniteFusion/Outfits/TrainerAppearance.rb
2025-04-25 22:06:46 -04:00

158 lines
7.0 KiB
Ruby
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

class TrainerAppearance
attr_accessor :skin_color
attr_accessor :hat
attr_accessor :hat2
attr_accessor :clothes
attr_accessor :hair
attr_accessor :hair_color
attr_accessor :clothes_color
attr_accessor :hat_color
attr_accessor :hat2_color
def initialize(skin_color, hat, clothes, hair, hair_color = 0, clothes_color = 0, hat_color = 0, hat2=nil, hat2_color=0)
@skin_color = skin_color
@hat = hat
@hat2 = hat2
@clothes = clothes
@hair = hair
@hair_color = hair_color
@clothes_color = clothes_color
@hat_color = hat_color
@hat2_color = hat2_color
end
end
def getTypeExpertAppearance(trainer_type)
return TYPE_EXPERTS_APPEARANCES[trainer_type]
end
TYPE_EXPERTS_APPEARANCES = {
:TYPE_EXPERT_NORMAL => TrainerAppearance.new(5, "snorlaxhat", "normal", "1_painter", 0, 0, 0), #todo TEAM
:TYPE_EXPERT_FIGHTING => TrainerAppearance.new(1, "karateHeadband", "fighting", "4_samurai", 0, 0, 0), #OK
# TYPE_EXPERT_FLYING =>#TODO NEEDS OUTFIT, LOCATION, TEAM
:TYPE_EXPERT_POISON => TrainerAppearance.new(5, "parashroom", "deadlypoisondanger", "3_lowbraids", 270, 0, 0), #todo TEAM
:TYPE_EXPERT_GROUND => TrainerAppearance.new(5, "sandshrewbeanie", "groundcowboy", "3_shortspike", 0, 0, 0), #todo TEAM
# TYPE_EXPERT_ROCK =>#TODO NEEDS OUTFIT, LOCATION, TEAM
:TYPE_EXPERT_BUG => TrainerAppearance.new("0", "bugantenna", "bughakama", "3_hime", 60, 0,), #OK
#:TYPE_EXPERT_GHOST => TrainerAppearance.new(6,"duskullmask","gothhoodie","4_hime",0,0,0), #NO CLOTHES - DISABLED #TODO NEEDS OUTFIT, TEAM
:TYPE_EXPERT_STEEL => TrainerAppearance.new(2, "veteranM", "steelworkerF", "4_highpony", 0, 0, 0), #todo TEAM
:TYPE_EXPERT_FIRE => TrainerAppearance.new(4, "firefigther", "fire", "2_bob", 330, 0, 0), #todo TEAM
:TYPE_EXPERT_WATER => TrainerAppearance.new(5, "waterdress", "waterdress", "1_pixie", 180, 0, 0),
# TYPE_EXPERT_GRASS => TrainerAppearance.new("0","aerodactylSkull","red","","","") , #TODO NEEDS OUTFIT, LOCATION, TEAM
:TYPE_EXPERT_ELECTRIC => TrainerAppearance.new(3, "designerheadphones", "urbanelectric", "1_dancer", 10, 0, 0), #OK
# TYPE_EXPERT_PSYCHIC =># TODO NEEDS OUTFIT, LOCATION, TEAM
:TYPE_EXPERT_ICE => TrainerAppearance.new(6,"skierF","iceoutfit","1_wavy",0,0,210),
:TYPE_EXPERT_DRAGON => TrainerAppearance.new(5, "aerodactylSkull", "dragonconqueror", "2_SpecialLatias", 670, 0, 510), #todo NEEDS LOCATION, TEAM
# TYPE_EXPERT_DARK => #TODO NEEDS OUTFIT, LOCATION, TEAM
:TYPE_EXPERT_FAIRY => TrainerAppearance.new(6, "mikufairy", "mikufairyf", "5_mikufairy", 0, 0, 0) #OK
}
TYPE_EXPERT_TRAINERS = {
:QMARK => ["name", "loseText"],
:ELECTRIC => ["Ray", "What a shocking turn of events!"],
:BUG => ["Bea", "Im bugging out of here!"],
:FAIRY => ["Luna", "You outshined me!"],
:DRAGON => ["Draco", "I shall scale back my plans."],
:FIGHTING => ["Floyd", "I have to throw in the towel."],
:GROUND => ["Pedro", "Im buried under this loss."],
:FIRE => ["Blaze", "I guess I got burned out."],
:GRASS => ["Ivy", "ou really cut me down to size!"],
:ICE => ["Crystal", "Im skating on thin ice!"],
:ROCK => ["Slate", "Looks like Ive hit rock bottom..."],
:WATER => ["Marina", "You really made a splash!"],
:FLYING => ["Gale", "I guess Im grounded for now."],
:DARK => ["Raven", "Ill slip back into the shadows"],
:STEEL => ["Silvia", "I guess I was a bit rusty..."],
:PSYCHIC => ["Carl", "I could not foresee this defeat."],
:GHOST => ["Evangeline", "I can feel myself disappearing into thin air!"],
:POISON => ["Marie", "I got a taste of my own medicine!"],
:NORMAL => ["Tim", "This was anything but normal!"],
}
TYPE_EXPERT_REWARDS = {
:QMARK => [],
:ELECTRIC => [CLOTHES_ELECTRIC],
:BUG => [CLOTHES_BUG_1,CLOTHES_BUG_2],
:FAIRY => [CLOTHES_FAIRY_F,CLOTHES_FAIRY_M],
:DRAGON => [CLOTHES_DRAGON],
:FIGHTING => [CLOTHES_FIGHTING],
:GROUND => [CLOTHES_GROUND],
:FIRE => [CLOTHES_FIRE],
:GRASS => [CLOTHES_GRASS],
:ICE => [CLOTHES_ICE],
:ROCK => [CLOTHES_ROCK],
:WATER => [CLOTHES_WATER],
:FLYING => [CLOTHES_FLYING],
:DARK => [CLOTHES_DARK],
:STEEL => [CLOTHES_STEEL_F,CLOTHES_STEEL_M],
:PSYCHIC => [CLOTHES_PSYCHIC],
:GHOST => [CLOTHES_GHOST],
:POISON => [CLOTHES_POISON],
:NORMAL => [CLOTHES_NORMAL],
}
TOTAL_NB_TYPE_EXPERTS = 12
def type_expert_battle(type_id)
type = GameData::Type.get(type_id)
pbCallBub(2, @event_id)
pbMessage("Ah! Can you feel the energy in here? This place is great for #{type.real_name}-Pokémon!")
pbCallBub(2, @event_id)
pbMessage("I'm what you could call an expert on #{type.real_name}-Pokémon. I've grown with them for all of my life.")
pbCallBub(2, @event_id)
pbMessage("I'll give you my \\C[5]special outfit\\C[0] if you can defeat my team using only #{type.real_name}-type Pokémon. ")
pbCallBub(2, @event_id)
if pbConfirmMessage("Do you think you can handle that?")
pbCallBub(2, @event_id)
pbMessage("Select your team! Remember, only #{type.real_name}-type Pokémon are allowed!")
gym_randomizer_index = GYM_TYPES_CLASSIC.index(type_id)
echoln gym_randomizer_index
pbSet(VAR_CURRENT_GYM_TYPE, gym_randomizer_index)
if PokemonSelection.choose(1, 4, true, true, proc { |poke| poke.hasType?(type_id) })
#Level is equal to the highest level in player's party
$game_switches[Settings::OVERRIDE_BATTLE_LEVEL_SWITCH]=true
$game_switches[SWITCH_DONT_RANDOMIZE]=true
pbSet(Settings::OVERRIDE_BATTLE_LEVEL_VALUE_VAR, $player.highest_level_pokemon_in_party)
trainer_class = "TYPE_EXPERT_#{type_id.to_s}".to_sym
trainer_name = TYPE_EXPERT_TRAINERS[type_id][0]
lose_text = TYPE_EXPERT_TRAINERS[type_id][1]
if pbTrainerBattle(trainer_class, trainer_name, lose_text, false, 0, false)
pbSet(VAR_TYPE_EXPERTS_BEATEN,pbGet(VAR_TYPE_EXPERTS_BEATEN)+1)
pbCallBub(2, @event_id)
pbMessage("Woah! You beat me at my own specialty! ")
pbCallBub(2, @event_id)
pbMessage("It's a true testament to your mastery of Pokémon typings!")
pbCallBub(2, @event_id)
pbMessage("Well then, I'll keep my word. You can have this very special outfit!")
for clothes in TYPE_EXPERT_REWARDS[type_id]
obtainClothes(clothes)
end
pbCallBub(2, @event_id)
pbMessage("When you wear it, you can sometimes find #{type.real_name}-type related items after battles!")
show_nb_type_experts_defeated()
PokemonSelection.restore
$game_switches[Settings::OVERRIDE_BATTLE_LEVEL_SWITCH]=false
$game_switches[SWITCH_DONT_RANDOMIZE]=false
pbSet(VAR_CURRENT_GYM_TYPE, -1)
return true
end
else
pbCallBub(2, @event_id)
pbMessage("Remember, you're only allowed to use #{type.real_name}-type Pokémon!")
end
end
PokemonSelection.restore
$game_switches[Settings::OVERRIDE_BATTLE_LEVEL_SWITCH]=false
$game_switches[SWITCH_DONT_RANDOMIZE]=false
pbSet(VAR_CURRENT_GYM_TYPE, -1)
return false
end
def show_nb_type_experts_defeated()
pbMEPlay("Register phone")
pbCallBub(3)
Kernel.pbMessage("Type experts defeated: #{pbGet(VAR_TYPE_EXPERTS_BEATEN)}/#{TOTAL_NB_TYPE_EXPERTS}")
end