initial commit
This commit is contained in:
1
.gitignore
vendored
Normal file
1
.gitignore
vendored
Normal file
@@ -0,0 +1 @@
|
||||
*.jar
|
||||
47
ZAOUMegaList.txt
Normal file
47
ZAOUMegaList.txt
Normal file
@@ -0,0 +1,47 @@
|
||||
Clefable-Mega: Serene Grace
|
||||
Victreebel-Mega: Triage
|
||||
Raichu-Mega-X: Levitate
|
||||
Raichu-Mega-Y: Transistor
|
||||
Starmie-Mega: Pure Power, -40 Atk
|
||||
Dragonite-Mega: Soul-Heart
|
||||
Meganium-Mega: Flower Veil
|
||||
Feraligatr-Mega: Dragon's Maw
|
||||
Ampharos-Mega: Fluffy
|
||||
Absol-Mega-Z: Technician
|
||||
Chimecho-Mega: Levitate
|
||||
Skarmory-Mega: Tough Claws
|
||||
Staraptor-Mega: Tough Claws
|
||||
Gallade-Mega: Sharpness
|
||||
Froslass-Mega: Snow Warning
|
||||
Garchomp-Mega-Z: Rough Skin
|
||||
Lucario-Mega-Z: Mind's Eye
|
||||
Heatran-Mega: Earth Eater
|
||||
Darkrai-Mega: Dark Aura
|
||||
Emboar-Mega: Supreme Overlord
|
||||
Excadrill-Mega: Mold Breaker
|
||||
Golurk-Mega: Adaptability
|
||||
Audino-Mega: Regenerator
|
||||
Scolipede-Mega: Tinted Lens
|
||||
Scrafty-Mega: Shed Skin
|
||||
Eelektross-Mega: Hadron Engine
|
||||
Chandelure-Mega: Magic Guard
|
||||
Chesnaught-Mega: Bulletproof
|
||||
Delphox-Mega: Levitate
|
||||
Greninja-Mega: Protean
|
||||
Meowstic-Mega: Psychic Surge
|
||||
Pyroar-Mega: Drought
|
||||
Dragalge-Mega: Regenerator
|
||||
Floette-Mega: Regenerator
|
||||
Malamar-Mega: Contrary
|
||||
Barbaracle-Mega: Tough Claws
|
||||
Hawlucha-Mega: Stamina
|
||||
Zygarde-Mega: Aura Break
|
||||
Crabominable-Mega: Ice Scales
|
||||
Golisopod-Mega: Regenerator
|
||||
Drampa-Mega: Drizzle
|
||||
Magearna-Mega: Soul-Heart
|
||||
Zeraora-Mega: Volt Absorb
|
||||
Falinks-Mega: Dauntless Shield
|
||||
Scovillain-Mega: Contrary
|
||||
Glimmora-Mega: Rocky Payload
|
||||
Baxcalibur-Mega: Thermal Exchange
|
||||
83
change_abilities.py
Normal file
83
change_abilities.py
Normal file
@@ -0,0 +1,83 @@
|
||||
'''
|
||||
Author: Dawson Matthews
|
||||
Date: 01/14/26
|
||||
|
||||
Takes as input:
|
||||
1. The directory in which all of the json files are listed in their respective
|
||||
directories seperated by generation from generation1 to generation9
|
||||
2. The file containing all desired mega pokemon and their target abilities in
|
||||
the format as shown by: Darkrai-Mega: Dark Aura
|
||||
3. The name of the new directory to put the changed files in
|
||||
|
||||
Produces as output a new directory with the fixed files in it.
|
||||
'''
|
||||
|
||||
import sys
|
||||
import os
|
||||
import json
|
||||
|
||||
def get_target_abilities(ability_data_path):
|
||||
'''
|
||||
Reads in the data from the path and converts date from the showdown format to the
|
||||
cobblemon format as a pythyon dictionary i.e. "Darkrai-Mega: Dark Aura" -> {"darkrai": "darkaura"}
|
||||
'''
|
||||
|
||||
ability_data = {}
|
||||
|
||||
with open(ability_data_path, "r", encoding="utf-8") as f:
|
||||
lines = f.readlines()
|
||||
for line in lines:
|
||||
line = (line.strip()).split() # Removing new line characters, as well as leading and trailing spaces. Then split it by the middle space
|
||||
species_name = line[0][:-6].lower() # Removes the "-Mega" suffix and sends the name to lower case
|
||||
ability = (line[1].replace(" ", "")).lower() # Removes the spaces
|
||||
ability_data[species_name] = ability
|
||||
|
||||
return ability_data
|
||||
|
||||
def write_augmented_species_data(src_dir, dst_dir, species_data):
|
||||
'''
|
||||
Takes the new species data in dictionary form and creates the new data
|
||||
'''
|
||||
|
||||
gen_dirs = os.listdir(species_additions_dir) # Get a list of all directories in the data path, each corresponding to one generation
|
||||
for gen_dir in gen_dirs:
|
||||
|
||||
dir_path = os.path.join(data_path, gen_dir)
|
||||
|
||||
if os.path.isdir(dir_path) == False: # Make sure it's actually a real file path
|
||||
return 1
|
||||
|
||||
species_files = os.listdir(dir_path)
|
||||
|
||||
for species_file_name in species_files:
|
||||
|
||||
species_file_path = os.path.join(dir_path, species_file_name)
|
||||
with open(species_file_path, "r", encoding="utf-8") as f:
|
||||
species_data = json.load(f)
|
||||
|
||||
# Edit the ability data (abities is a list of strings, sometimes having an "h:" in front of the name if it's the hidden ability)
|
||||
forms = species_data["forms"]
|
||||
for form in forms:
|
||||
abilities = form["abilities"]
|
||||
|
||||
for ability in abilities:
|
||||
|
||||
|
||||
def main():
|
||||
program_name = sys.argv[0]
|
||||
|
||||
usage_string = f"Usage: {program_name} <source directory> <target directory> <target data>"
|
||||
|
||||
num_args = len(sys.argv)
|
||||
if num_args != 4:
|
||||
print(usage_string)
|
||||
|
||||
_, src_dir, dst_dir, data_path = sys.argv # Gets the required information from the program arguments
|
||||
|
||||
ability_data = get_target_abilities(data_path)
|
||||
|
||||
write_augmented_species_data(src_dir, dst_dir, ability_data)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
Reference in New Issue
Block a user