kin island club

This commit is contained in:
infinitefusion
2021-12-18 22:08:50 -05:00
parent f29e2bbf1a
commit f1010cb4a6
33 changed files with 187 additions and 72 deletions

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.

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.

Binary file not shown.

View File

@@ -734,7 +734,7 @@ module Compiler
end end
def main def main
return #return
return if !$DEBUG return if !$DEBUG
begin begin
dataFiles = [ dataFiles = [

View File

@@ -1,13 +1,14 @@
#Switches #Switches
NEW_GAME_PLUS = 972 NEW_GAME_PLUS = 972
BEAT_THE_LEAGUE = 12 BEAT_THE_LEAGUE = 12
BEAT_MT_SILVER=918
#Variables #Variables
DEFAULT_BATTLE_TYPE = 242 DEFAULT_BATTLE_TYPE = 242
BATTLE_FACTORY_TOKENS = 243 BATTLE_FACTORY_TOKENS = 243
NB_GYM_REMATCHES = 162
#Settings #Settings

View File

@@ -4,49 +4,82 @@ end
def get_egg_group_from_id(id) def get_egg_group_from_id(id)
case id case id
when 0 ;return nil when 0;
when 1;return :Monster return nil
when 2;return :Water1 when 1;
when 3;return :Bug return :Monster
when 4;return :Flying when 2;
when 5;return :Field return :Water1
when 6;return :Fairy when 3;
when 7;return :Grass return :Bug
when 8;return :Humanlike when 4;
when 9;return :Water3 return :Flying
when 10;return :Mineral when 5;
when 11;return :Amorphous return :Field
when 12;return :Water2 when 6;
when 13;return :Ditto return :Fairy
when 14;return :Dragon when 7;
when 15;return :Undiscovered return :Grass
when 8;
return :Humanlike
when 9;
return :Water3
when 10;
return :Mineral
when 11;
return :Amorphous
when 12;
return :Water2
when 13;
return :Ditto
when 14;
return :Dragon
when 15;
return :Undiscovered
end end
end end
def get_egg_group_name(id) def get_egg_group_name(id)
case id case id
when 0 ;return nil when 0;
when 1;return "Monster Pokémon" return nil
when 2;return :"Aquatic Pokémon" when 1;
when 3;return :"Bug Pokémon" return "Monster Pokémon"
when 4;return :"Bird Pokémon" when 2;
when 5;return :"Land Pokémon" return :"Aquatic Pokémon"
when 6;return :"Cute Pokémon" when 3;
when 7;return :"Plant Pokémon" return :"Bug Pokémon"
when 8;return :"Human-like Pokémon" when 4;
when 9;return :"Aquatic Pokémon" return :"Bird Pokémon"
when 10;return :"Mineral Pokémon" when 5;
when 11;return :"Blob Pokémon" return :"Land Pokémon"
when 12;return :"Fish Pokémon" when 6;
when 13;return :"Ditto" return :"Cute Pokémon"
when 14;return :"Dragon Pokémon" when 7;
when 15;return :"Legendary Pokémon" return :"Plant Pokémon"
when 8;
return :"Human-like Pokémon"
when 9;
return :"Aquatic Pokémon"
when 10;
return :"Mineral Pokémon"
when 11;
return :"Blob Pokémon"
when 12;
return :"Fish Pokémon"
when 13;
return :"Ditto"
when 14;
return :"Dragon Pokémon"
when 15;
return :"Legendary Pokémon"
end end
end end
def get_random_trainer_name(trainer_class) #0: male, 1: female def get_random_trainer_name(trainer_class)
gender = GameData::TrainerType.get(trainer_class).gender #0: male, 1: female
if(gender == 0) gender = GameData::TrainerType.get(trainer_class).gender
if (gender == 0)
return RandTrainerNames_male[rand(RandTrainerNames_male.length)] return RandTrainerNames_male[rand(RandTrainerNames_male.length)]
else else
return RandTrainerNames_female[rand(RandTrainerNames_female.length)] return RandTrainerNames_female[rand(RandTrainerNames_female.length)]
@@ -54,68 +87,78 @@ gender = GameData::TrainerType.get(trainer_class).gender
end end
def get_random_battle_lounge_egg_group def get_random_battle_lounge_egg_group
_DISABLED_EGG_GROUPS = [0,13,15] _DISABLED_EGG_GROUPS = [0, 13, 15]
group=0 group = 0
while _DISABLED_EGG_GROUPS.include?(group) while _DISABLED_EGG_GROUPS.include?(group)
group = rand(0,15) group = rand(0, 15)
end end
return group return group
end end
GENERIC_PRIZES_MULTI = [:HEARTSCALE,:LEMONADE] GENERIC_PRIZES_MULTI = [:HEARTSCALE, :LEMONADE]
GENERIC_PRIZES_SINGLE = [:RARECANDY,:RARECANDY,:PPUP,:EJECTBUTTON,:FOCUSBAND,:FOCUSSASH,:RESETURGE,:ABILITYURGE,:ITEMURGE,:ITEMDROP,:HPUP] GENERIC_PRIZES_SINGLE = [:RARECANDY, :RARECANDY, :PPUP, :EJECTBUTTON, :FOCUSBAND, :FOCUSSASH, :RESETURGE, :ABILITYURGE, :ITEMURGE, :ITEMDROP, :HPUP]
MONSTER_PRIZES = [:RAREBONE,:LAGGINGTAIL,:RAZORFANG,:RAZORCLAW,:GRIPCLAW] MONSTER_PRIZES = [:RAREBONE, :LAGGINGTAIL, :RAZORFANG, :RAZORCLAW, :GRIPCLAW]
WATER_PRIZES = [:MYSTICWATER,:BIGPEARL] WATER_PRIZES = [:MYSTICWATER, :BIGPEARL]
BUG_PRIZES = [:SILVERPOWDER,:SHEDSHELL] BUG_PRIZES = [:SILVERPOWDER, :SHEDSHELL]
FLYING_PRIZES = [:AIRBALLOON,:FLOATSTONE] FLYING_PRIZES = [:AIRBALLOON, :FLOATSTONE]
FIELD_PRIZES = [:MOOMOOMILK,:IRONBALL,:RAREBONE] FIELD_PRIZES = [:MOOMOOMILK, :IRONBALL, :RAREBONE]
FAIRY_PRIZES = [:STARPIECE,:DESTINYKNOT,:MAXELIXIR] FAIRY_PRIZES = [:STARPIECE, :DESTINYKNOT, :MAXELIXIR]
HUMAN_PRIZES = [:BLACKBELT,:RINGTARGET,:EXPERTBELT] HUMAN_PRIZES = [:BLACKBELT, :RINGTARGET, :EXPERTBELT]
GRASS_PRIZES = [:REVIVALHERB,:POWERHERB,:HEALPOWDER,:ABSORBBULB,:BIGMUSHROOM] GRASS_PRIZES = [:REVIVALHERB, :POWERHERB, :HEALPOWDER, :ABSORBBULB, :BIGMUSHROOM]
MINERAL_PRIZES = [:CELLBATTERY,:SHINYSTONE,:BIGNUGGET,:RELICCOPPER,:RELICGOLD,:RELICSILVER] MINERAL_PRIZES = [:CELLBATTERY, :SHINYSTONE, :BIGNUGGET, :RELICCOPPER, :RELICGOLD, :RELICSILVER]
AMORPHOUS_PRIZES = [:SPELLTAG,:WIDELENS,:ZOOMLENS,:SCOPELENS] AMORPHOUS_PRIZES = [:SPELLTAG, :WIDELENS, :ZOOMLENS, :SCOPELENS]
DRAGON_PRIZES = [:DRAGONSCALE,:DRAGONFANG,:RARECANDY] DRAGON_PRIZES = [:DRAGONSCALE, :DRAGONFANG, :RARECANDY]
UNDISCOVERED_PRIZES = [:MASTERBALL,:SACREDASH] UNDISCOVERED_PRIZES = [:MASTERBALL, :SACREDASH]
#todo: prizes related to the group (ex: dragon fang for dragon types, TMs, etc. ) #todo: prizes related to the group (ex: dragon fang for dragon types, TMs, etc. )
# todo: if heartscale, give a random amount from 10-20 # todo: if heartscale, give a random amount from 10-20
def get_random_battle_lounge_prize(group_type) def get_random_battle_lounge_prize(group_type)
generic_prizes = [GENERIC_PRIZES_MULTI, GENERIC_PRIZES_SINGLE] generic_prizes = [GENERIC_PRIZES_MULTI, GENERIC_PRIZES_SINGLE]
is_generic_prize = rand(3)==1 is_generic_prize = rand(3) == 1
if is_generic_prize if is_generic_prize
type = generic_prizes.sample type = generic_prizes.sample
return type.sample return type.sample
else else
case get_egg_group_from_id(group_type) case get_egg_group_from_id(group_type)
when :Monster ; return MONSTER_PRIZES.sample when :Monster;
when :Water1,:Water2,:Water3 ; return WATER_PRIZES.sample return MONSTER_PRIZES.sample
when :Bug ; return BUG_PRIZES.sample when :Water1, :Water2, :Water3;
when :Flying ; return FLYING_PRIZES.sample return WATER_PRIZES.sample
when :Field ; return FIELD_PRIZES.sample when :Bug;
when :Fairy ; return FAIRY_PRIZES.sample return BUG_PRIZES.sample
when :Grass ; return GRASS_PRIZES.sample when :Flying;
when :Mineral ; return MINERAL_PRIZES.sample return FLYING_PRIZES.sample
when :Humanlike ; return HUMAN_PRIZES.sample when :Field;
when :Amorphous ; return AMORPHOUS_PRIZES.sample return FIELD_PRIZES.sample
when :Dragon ; return DRAGON_PRIZES.sample when :Fairy;
when :Undiscovered ; return UNDISCOVERED_PRIZES.sample return FAIRY_PRIZES.sample
when :Grass;
return GRASS_PRIZES.sample
when :Mineral;
return MINERAL_PRIZES.sample
when :Humanlike;
return HUMAN_PRIZES.sample
when :Amorphous;
return AMORPHOUS_PRIZES.sample
when :Dragon;
return DRAGON_PRIZES.sample
when :Undiscovered;
return UNDISCOVERED_PRIZES.sample
end end
end end
end end
def generateSameEggGroupFusionsTeam(eggGroup_id) def generateSameEggGroupFusionsTeam(eggGroup_id)
eggGroup = get_egg_group_from_id(eggGroup_id) eggGroup = get_egg_group_from_id(eggGroup_id)
teamComplete = false teamComplete = false
generatedTeam = [] generatedTeam = []
while !teamComplete while !teamComplete
foundFusionPartner = false foundFusionPartner = false
species1 = rand(Settings::NB_POKEMON)+1 species1 = rand(Settings::NB_POKEMON) + 1
if getPokemonEggGroups(species1).include?(eggGroup) if getPokemonEggGroups(species1).include?(eggGroup)
foundFusionPartner = false foundFusionPartner = false
while !foundFusionPartner while !foundFusionPartner
species2 = rand(Settings::NB_POKEMON)+1 species2 = rand(Settings::NB_POKEMON) + 1
if getPokemonEggGroups(species2).include?(eggGroup) if getPokemonEggGroups(species2).include?(eggGroup)
generatedTeam << getFusionSpecies(species1, species2) generatedTeam << getFusionSpecies(species1, species2)
foundFusionPartner = true foundFusionPartner = true
@@ -126,3 +169,52 @@ def generateSameEggGroupFusionsTeam(eggGroup_id)
end end
return generatedTeam return generatedTeam
end end
def listLegendaryPokemonIds()
return [144, 145, 146, 150, 151, 245, 243, 244, 245, 249, 250, 251, 315, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 378, 379, 380, 381]
end
def generateRandomFusionFromPokemon(dexNum, onlyCustomSprites = false, allowLegendaries=true)
speciesList = onlyCustomSprites ? getCustomSpeciesListForPokemon(dexNum,allowLegendaries) : getAllPokemonWithBase(dexNum)
return speciesList.sample
end
def getRandomBasePokemon(includeLegendaries = false)
legendaries =listLegendaryPokemonIds()
poke = rand(NB_POKEMON + 1)
return poke if includeLegendaries
while legendaries.include?(poke)
poke = rand(NB_POKEMON + 1)
end
return poke
end
def getAllPokemonWithBase(dexNum)
#todo Unimplemented
return [25]
end
def getCustomSpeciesListForPokemon(dexNum,allowLegendaries=true)
excluded = allowLegendaries ? [] : listLegendaryPokemonIds()
filesList = Dir["./Graphics/CustomBattlers/*"]
speciesList = []
maxDexNumber = (NB_POKEMON * NB_POKEMON) + NB_POKEMON
maxVal = filesList.length - 1
for i in 0..maxVal
path = filesList[i]
file = File.basename(path, ".*")
splitPoke = file.split(".")
head = splitPoke[0].to_i
body = splitPoke[1].to_i
if (head == dexNum || body == dexNum) && !(excluded.include?(head) || excluded.include?(body))
fused = (body * NB_POKEMON) + head
if fused <= maxDexNumber && fused > 0
speciesList << fused
end
end
end
if speciesList.length == 0
speciesList << dexNum
end
return speciesList
end

View File

@@ -100,6 +100,10 @@ def getDexNumberForSpecies(species)
return dexNum return dexNum
end end
def getPokemon(dexNum)
return GameData::Species.get(dexNum)
end
#shortcut for using in game events because of script characters limit #shortcut for using in game events because of script characters limit
def dexNum(species) def dexNum(species)
return getDexNumberForSpecies(species) return getDexNumberForSpecies(species)
@@ -279,3 +283,18 @@ def Kernel.setRocketPassword(variableNum)
password = _INTL("{1}'s {2}",word1,word2) password = _INTL("{1}'s {2}",word1,word2)
pbSet(variableNum,password) pbSet(variableNum,password)
end end
def getGenericPokemonCryText(pokemonSpecies)
case pokemonSpecies
when 25
return "Pika!"
when 16,17,18,21,22,144,145,146,227,417,418,372 #birds
return "Squawk!"
when 163,164
return "Hoot!" #owl
else
return "Guaugh!"
end
end

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.

View File

@@ -4639,3 +4639,6 @@ Pokemon = B130H149,79 #DRAGONDOS (w/extremespeed)
Pokemon = DIALGA,25 Pokemon = DIALGA,25
Pokemon = PALKIA,25 Pokemon = PALKIA,25
Pokemon = GIRATINA,25 Pokemon = GIRATINA,25
[COOLTRAINER_F,lounge_member_single]
Pokemon = DIALGA,25