mirror of
https://github.com/pret/pokeemerald.git
synced 2026-03-21 17:54:57 -05:00
update to parsing tool for typing splits
This commit is contained in:
parent
e2af594f79
commit
5a610752c0
|
|
@ -1 +0,0 @@
|
|||
,nicksnax,bazzite,08.03.2026 14:22,file:///var/home/nicksnax/.var/app/org.libreoffice.LibreOffice/config/libreoffice/4;
|
||||
|
|
@ -1 +0,0 @@
|
|||
,nicksnax,bazzite,08.03.2026 15:22,file:///var/home/nicksnax/.var/app/org.libreoffice.LibreOffice/config/libreoffice/4;
|
||||
|
|
@ -8,7 +8,7 @@ from openpyxl import load_workbook
|
|||
#Globals for making header, opening data, debug prints, etc
|
||||
Debug = 1
|
||||
WriteOrAdd = 'w'
|
||||
GenName = "pkmnevolved"
|
||||
GenName = "PkmnEvolved"
|
||||
PkmnData = load_workbook('pkmndata.xlsx')
|
||||
PkmnDataFile = PkmnData.active
|
||||
|
||||
|
|
@ -39,16 +39,28 @@ with open('test.h', WriteOrAdd) as file:
|
|||
|
||||
#Begin writing species information to .h file
|
||||
if Debug == 1:
|
||||
for species in PkmnDataFile.iter_rows(min_row=2, max_row=5, min_col=1, max_col=PkmnDataFile.max_column):
|
||||
#for species in PkmnDataFile.iter_rows(min_row=1, max_row=PkmnDataFile.max_row, min_col=1, max_col=PkmnDataFile.max_column):
|
||||
#Start from second row so you do not grab data headers
|
||||
for species in PkmnDataFile.iter_rows(min_row=2, max_row=10, min_col=1, max_col=PkmnDataFile.max_column):
|
||||
#Check if new species
|
||||
if species[PkmnDataFile.max_column-1].value == 1:
|
||||
print("New Species Found")
|
||||
file.write("#if P_FAMILY_" + species[PkmnDataFile.min_column-1].value + "\n")
|
||||
file.write("\t[SPECIES_" + species[PkmnDataFile.min_column - 1].value + "] =\n")
|
||||
file.write("\t{\n")
|
||||
#step through each element of the species
|
||||
for data in species:
|
||||
file.write("\t\t" + SpeciesStructAttributes[data.column-1] + " = " + str(data.value) + ",\n")
|
||||
|
||||
#types are stupid and need to be handled like this to deal with indexing issues
|
||||
if PkmnDataFile.cell(row = PkmnDataFile.min_row, column = data.column).value == ".types":
|
||||
types = data.value.split(',')
|
||||
type1 = types[0]
|
||||
type2 = types[1]
|
||||
if type1 == type2:
|
||||
file.write("\t\t.types = MON_TYPES(TYPE_" + type1 + "),\n")
|
||||
else:
|
||||
file.write("\t\t.types = MON_TYPES(TYPE_" + type1 + ", TYPE_"+ type2 + "),\n")
|
||||
else:
|
||||
file.write("\t\t" + SpeciesStructAttributes[data.column-1] + " = " + str(data.value) + ",\n")
|
||||
|
||||
|
||||
#for data in species:
|
||||
#print(data.value)
|
||||
|
|
|
|||
57
pokeemerald-tools/data-fixer.py
Normal file
57
pokeemerald-tools/data-fixer.py
Normal file
|
|
@ -0,0 +1,57 @@
|
|||
#Tool for creating new gen.h files for emerald expansion
|
||||
#Takes information from excel sheet and prepares .h file for custom pokemon
|
||||
import openpyxl as pyxl
|
||||
|
||||
from openpyxl.workbook import Workbook
|
||||
from openpyxl import load_workbook
|
||||
|
||||
#Globals for making header, opening data, debug prints, etc
|
||||
Debug = 1
|
||||
WriteOrAdd = 'w'
|
||||
GenName = "PkmnEvolved"
|
||||
PkmnData = load_workbook('pkmndata.xlsx')
|
||||
PkmnDataFile = PkmnData.active
|
||||
|
||||
for row in PkmnDataFile.iter_rows(min_row=1, max_row=PkmnDataFile.max_row, min_col=1, max_col=PkmnDataFile.max_column):
|
||||
for data in row:
|
||||
if data.column == 8 or data.column == 9:
|
||||
match data.value:
|
||||
case 0:
|
||||
data.value = "NORMAL"
|
||||
case 1:
|
||||
data.value = "FIGHTING"
|
||||
case 2:
|
||||
data.value = "FLYING"
|
||||
case 3:
|
||||
data.value = "POISON"
|
||||
case 4:
|
||||
data.value = "GROUND"
|
||||
case 5:
|
||||
data.value = "ROCK"
|
||||
case 6:
|
||||
data.value = "BUG"
|
||||
case 7:
|
||||
data.value = "GHOST"
|
||||
case 8:
|
||||
data.value = "STEEL"
|
||||
case 9:
|
||||
data.value = "?????"
|
||||
case 10:
|
||||
data.value = "FIRE"
|
||||
case 11:
|
||||
data.value = "WATER"
|
||||
case 12:
|
||||
data.value = "GRASS"
|
||||
case 13:
|
||||
data.value = "ELECTRIC"
|
||||
case 14:
|
||||
data.value = "PSYCHIC"
|
||||
case 15:
|
||||
data.value = "ICE"
|
||||
case 16:
|
||||
data.value = "DRAGON"
|
||||
case 17:
|
||||
data.value = "DARK"
|
||||
|
||||
PkmnData.save("pkmndata-fix.xlsx")
|
||||
PkmnData.close()
|
||||
BIN
pokeemerald-tools/pkmndata-fix.xlsx
Normal file
BIN
pokeemerald-tools/pkmndata-fix.xlsx
Normal file
Binary file not shown.
Binary file not shown.
|
|
@ -1,19 +1,19 @@
|
|||
//gen file for pkmnevolved
|
||||
//gen file for PkmnEvolved
|
||||
#ifdef __INTELLISENSE__
|
||||
const struct SpeciesInfo gSpeciesInfopkmnevolved[] =
|
||||
const struct SpeciesInfo gSpeciesInfoPkmnEvolved[] =
|
||||
{
|
||||
#endif
|
||||
#if P_FAMILY_BULBASAUR
|
||||
[SPECIES_BULBASAUR] =
|
||||
{
|
||||
.speciesName = BULBASAUR,
|
||||
.baseHP = 45,
|
||||
.baseAttack = 49,
|
||||
.baseDefense = 49,
|
||||
.baseSpeed = 45,
|
||||
.baseSpAttack = 65,
|
||||
.baseSpDefense = 65,
|
||||
.types1 = 12,
|
||||
.types2 = 3,
|
||||
.types = MON_TYPES(TYPE_GRASS, TYPE_POISON),
|
||||
.catchRate = 45,
|
||||
.expYield = 60,
|
||||
.evYield_HP = 0,
|
||||
|
|
@ -38,14 +38,14 @@ const struct SpeciesInfo gSpeciesInfopkmnevolved[] =
|
|||
newspecies = 1,
|
||||
[SPECIES_IVYSAUR] =
|
||||
{
|
||||
.speciesName = IVYSAUR,
|
||||
.baseHP = 60,
|
||||
.baseAttack = 62,
|
||||
.baseDefense = 63,
|
||||
.baseSpeed = 60,
|
||||
.baseSpAttack = 80,
|
||||
.baseSpDefense = 80,
|
||||
.types1 = 12,
|
||||
.types2 = 3,
|
||||
.types = MON_TYPES(TYPE_GRASS, TYPE_POISON),
|
||||
.catchRate = 45,
|
||||
.expYield = 121,
|
||||
.evYield_HP = 0,
|
||||
|
|
@ -70,14 +70,14 @@ const struct SpeciesInfo gSpeciesInfopkmnevolved[] =
|
|||
newspecies = None,
|
||||
[SPECIES_VENUSAUR] =
|
||||
{
|
||||
.speciesName = VENUSAUR,
|
||||
.baseHP = 80,
|
||||
.baseAttack = 82,
|
||||
.baseDefense = 83,
|
||||
.baseSpeed = 80,
|
||||
.baseSpAttack = 100,
|
||||
.baseSpDefense = 100,
|
||||
.types1 = 12,
|
||||
.types2 = 3,
|
||||
.types = MON_TYPES(TYPE_GRASS, TYPE_POISON),
|
||||
.catchRate = 45,
|
||||
.expYield = 185,
|
||||
.evYield_HP = 0,
|
||||
|
|
@ -102,14 +102,14 @@ const struct SpeciesInfo gSpeciesInfopkmnevolved[] =
|
|||
newspecies = None,
|
||||
[SPECIES_ECOSAUR] =
|
||||
{
|
||||
.speciesName = ECOSAUR,
|
||||
.baseHP = 84,
|
||||
.baseAttack = 90,
|
||||
.baseDefense = 85,
|
||||
.baseSpeed = 80,
|
||||
.baseSpAttack = 118,
|
||||
.baseSpDefense = 118,
|
||||
.types1 = 12,
|
||||
.types2 = 3,
|
||||
.types = MON_TYPES(TYPE_GRASS, TYPE_POISON),
|
||||
.catchRate = 45,
|
||||
.expYield = 204,
|
||||
.evYield_HP = 0,
|
||||
|
|
@ -132,4 +132,165 @@ const struct SpeciesInfo gSpeciesInfopkmnevolved[] =
|
|||
dex = (Green false),
|
||||
padding = 0,
|
||||
newspecies = None,
|
||||
[SPECIES_TERARISAUR] =
|
||||
{
|
||||
.speciesName = TERARISAUR,
|
||||
.baseHP = 90,
|
||||
.baseAttack = 106,
|
||||
.baseDefense = 91,
|
||||
.baseSpeed = 80,
|
||||
.baseSpAttack = 129,
|
||||
.baseSpDefense = 129,
|
||||
.types = MON_TYPES(TYPE_GRASS, TYPE_POISON),
|
||||
.catchRate = 45,
|
||||
.expYield = 215,
|
||||
.evYield_HP = 0,
|
||||
.evYield_Attack = 0,
|
||||
.evYield_Defense = 0,
|
||||
.evYield_Speed = 0,
|
||||
.evYield_SpAttack = 2,
|
||||
.evYield_SpDefense = 1,
|
||||
item1 = ????????,
|
||||
item2 = ????????,
|
||||
genderratio = "87% Male",
|
||||
steps2hatch = 20,
|
||||
basehappiness = 70,
|
||||
growthrate = "Medium Fast",
|
||||
egg1 = Monster,
|
||||
egg2 = Grass,
|
||||
ability1 = CHLOROPHYLL,
|
||||
ability2 = -------,
|
||||
runrate = 0,
|
||||
dex = (Green false),
|
||||
padding = 0,
|
||||
newspecies = None,
|
||||
[SPECIES_SYMBISAUR] =
|
||||
{
|
||||
.speciesName = SYMBISAUR,
|
||||
.baseHP = 98,
|
||||
.baseAttack = 119,
|
||||
.baseDefense = 93,
|
||||
.baseSpeed = 74,
|
||||
.baseSpAttack = 138,
|
||||
.baseSpDefense = 138,
|
||||
.types = MON_TYPES(TYPE_GRASS, TYPE_POISON),
|
||||
.catchRate = 45,
|
||||
.expYield = 230,
|
||||
.evYield_HP = 0,
|
||||
.evYield_Attack = 0,
|
||||
.evYield_Defense = 0,
|
||||
.evYield_Speed = 0,
|
||||
.evYield_SpAttack = 2,
|
||||
.evYield_SpDefense = 1,
|
||||
item1 = ????????,
|
||||
item2 = ????????,
|
||||
genderratio = "87% Male",
|
||||
steps2hatch = 20,
|
||||
basehappiness = 70,
|
||||
growthrate = "Medium Fast",
|
||||
egg1 = Monster,
|
||||
egg2 = Grass,
|
||||
ability1 = CHLOROPHYLL,
|
||||
ability2 = -------,
|
||||
runrate = 0,
|
||||
dex = (Green false),
|
||||
padding = 0,
|
||||
newspecies = None,
|
||||
#if P_FAMILY_CHARMANDER
|
||||
[SPECIES_CHARMANDER] =
|
||||
{
|
||||
.speciesName = CHARMANDER,
|
||||
.baseHP = 39,
|
||||
.baseAttack = 52,
|
||||
.baseDefense = 43,
|
||||
.baseSpeed = 65,
|
||||
.baseSpAttack = 60,
|
||||
.baseSpDefense = 50,
|
||||
.types = MON_TYPES(TYPE_FIRE),
|
||||
.catchRate = 45,
|
||||
.expYield = 58,
|
||||
.evYield_HP = 0,
|
||||
.evYield_Attack = 0,
|
||||
.evYield_Defense = 0,
|
||||
.evYield_Speed = 1,
|
||||
.evYield_SpAttack = 0,
|
||||
.evYield_SpDefense = 0,
|
||||
item1 = ????????,
|
||||
item2 = ????????,
|
||||
genderratio = "87% Male",
|
||||
steps2hatch = 20,
|
||||
basehappiness = 70,
|
||||
growthrate = "Medium Fast",
|
||||
egg1 = Monster,
|
||||
egg2 = Dragon,
|
||||
ability1 = BLAZE,
|
||||
ability2 = -------,
|
||||
runrate = 0,
|
||||
dex = (Red false),
|
||||
padding = 0,
|
||||
newspecies = 1,
|
||||
[SPECIES_CHARMELEON] =
|
||||
{
|
||||
.speciesName = CHARMELEON,
|
||||
.baseHP = 58,
|
||||
.baseAttack = 64,
|
||||
.baseDefense = 58,
|
||||
.baseSpeed = 80,
|
||||
.baseSpAttack = 80,
|
||||
.baseSpDefense = 65,
|
||||
.types = MON_TYPES(TYPE_FIRE),
|
||||
.catchRate = 45,
|
||||
.expYield = 115,
|
||||
.evYield_HP = 0,
|
||||
.evYield_Attack = 0,
|
||||
.evYield_Defense = 0,
|
||||
.evYield_Speed = 1,
|
||||
.evYield_SpAttack = 1,
|
||||
.evYield_SpDefense = 0,
|
||||
item1 = ????????,
|
||||
item2 = ????????,
|
||||
genderratio = "87% Male",
|
||||
steps2hatch = 20,
|
||||
basehappiness = 70,
|
||||
growthrate = "Medium Fast",
|
||||
egg1 = Monster,
|
||||
egg2 = Dragon,
|
||||
ability1 = BLAZE,
|
||||
ability2 = -------,
|
||||
runrate = 0,
|
||||
dex = (Red false),
|
||||
padding = 0,
|
||||
newspecies = None,
|
||||
[SPECIES_CHARIZARD] =
|
||||
{
|
||||
.speciesName = CHARIZARD,
|
||||
.baseHP = 78,
|
||||
.baseAttack = 84,
|
||||
.baseDefense = 78,
|
||||
.baseSpeed = 100,
|
||||
.baseSpAttack = 109,
|
||||
.baseSpDefense = 85,
|
||||
.types = MON_TYPES(TYPE_FIRE, TYPE_FLYING),
|
||||
.catchRate = 45,
|
||||
.expYield = 179,
|
||||
.evYield_HP = 0,
|
||||
.evYield_Attack = 0,
|
||||
.evYield_Defense = 0,
|
||||
.evYield_Speed = 0,
|
||||
.evYield_SpAttack = 3,
|
||||
.evYield_SpDefense = 0,
|
||||
item1 = ????????,
|
||||
item2 = ????????,
|
||||
genderratio = "87% Male",
|
||||
steps2hatch = 20,
|
||||
basehappiness = 70,
|
||||
growthrate = "Medium Fast",
|
||||
egg1 = Monster,
|
||||
egg2 = Dragon,
|
||||
ability1 = BLAZE,
|
||||
ability2 = -------,
|
||||
runrate = 0,
|
||||
dex = (Red false),
|
||||
padding = 0,
|
||||
newspecies = None,
|
||||
//end of program
|
||||
Loading…
Reference in New Issue
Block a user