<gh_stars>1-10

# safe enemy classes to use
EnemyClasses = [
    "Spearman", "SpearRider_R", "SpearRider", "ImperialSpearman", "ImperialSpearRider_R", "ImperialSpearRider",
    "Farmer", "VerianKnight_R", "VerianKnight", "VerianKnight2_R", "VerianKnight2", "ImperialKnight_R",
    "ImperialKnight", "Guardian", "ImperialPaladin_R", "ImperialPaladin", "HighKnight_R", "HighKnight2_R",
    "General", "WyvernKnight_R", "WyvernKnight", "WyvernLord_R", "WyvernLord", "Axeman", "ImperialAxeman",
    "AxeGuard", "ArmorKnight", "Bowman", "BowRider_R", "BowRider", "Gunner", "HeavyGunner", "ImperialBowman",
    "ImperialBowRider_R", "ImperialBowRider", "ImperialGunner", "ImperialHeavyGunner", "Marksman",
    "ImperialMarksman", "Warrior", "Hunter", "Chief", "Bandit", "Corsair", "Ruffian_R", "Ruffian", "Pickpocket",
    "Outlaw", "Assassin", "Rogue", "RazeMonk", "RazePriest", "RazeBishop", "DarkMaster", "RazeWarMonk",
    "RogueGuard", "RogueArcher", "RogueGunner", "RogueWarrior", "SnowBandit", "Barbarian", "Duke", "Scoundrel",
    "RazeWarMonk2", "FailedPoet", "RazeBishop2", "King", "Captain", "Huntress", "DragonKnight_R", "DragonKnight",
]

# well they don't need bonuses
ToughEnemies = [
    "GigasKnight", "Ballistician", "Flamewyrm", "Icewyrm", "Levinwyrm", "Wyvern",
    "LanceKnight_R", "LanceKnight", "LanceKnight2_R", "LanceKnight2", "BlackRider_R", "BlackRider",
]

# give them more magic
MagicalEnemies = [
    "RazeMonk", "RazePriest", "RazeBishop", "DarkMaster", "RazeWarMonk", "RazeWarMonk2",
]

# probably don't give these guys magic bonus
ArmoredEnemies = [
    "ArmorKnight", "Guardian", "General", "WyvernKnight_R", "WyvernLord_R", "DragonKnight_R",
    "AxeGuard", "AxeSoldier", "AxeSergeant",
]

# enemy classes that the player has, please ignore derrick
SharedEnemies = [
    "AxeSoldier", "AxeSergeant", "VeteranKnight_R", "VeteranKnight", "Mercenary", "Swordfighter",  # "ArmorKnight"
]

ExoticWeapons = [
    "Crotalus", "Carnwenhau", "TempestKnife",
    "Zweihander", "Brymranger", "Gram", "Balmung", "RazeEtoile", "Nothung",
    "Cutlass", "Cutlass+", "Balmung2", "Balmung3",
    "InfernalEdge", "Colichemarde", "Grimhild", "Harperia", "Adrastia",
    "Fauchard", "Drakelance", "Euthyphro", "GreatLance", "Angon", "Brionac",
    "MaozaWolf", "Bhuj", "Tabarzin", "Mjollnir", "Gullveig",
    "Pascanion", "SereniaBow", "Pascanion2", "Apeiron", "Rossweisse", "RapidCrossbow", "Ollerus",
    "Perseid", "Vollenden", "Aiantos", "WyrmskinShield", "DarkShield", "Hestia"
]


BaseLevel = {
    "reese": 1,
    "ward": 22,
    "elbert": 4,
    "christine": 1,
    "adel": 1,
    "leon": 1,
    "sherlock": 3,
    "izerna": 1,
    "czene": 1,
    "aegina": 1,
    "daoud": 6,
    "enid": 1,
    "marcel": 5,
    "alvina": 12,
    "ruby": 1,
    "arthur": 2,
    "kramer": 3,
    "dean": 4,
    "faye": 1,
    "sylvis": 3,
    "perceval": 4,
    "thaddy": 2,
    "esteban": 2,
    "faramir": 10,
    "volo": 13,
    "sherpa": 14,
    "clifford": 20,
    "axel": 5,
    "larentia": 5,
    "owen": 12,
    "burroughs": 4,
    "derrick": 3,
    "saphira": 1,
    "lynette": 17,
    "paramythis": 16,
}

JoiningChapter = {
    "reese": 1,
    "ward": 1,
    "elbert": 1,
    "christine": 1,
    "adel": 1,
    "leon": 1,
    "sherlock": 1,
    "izerna": 1,
    "czene": 2,
    "aegina": 3,
    "daoud": 4,
    "enid": 6,
    "marcel": 5,
    "alvina": 9,
    "ruby": 1,
    "arthur": 1,
    "kramer": 2,
    "dean": 1,
    "faye": 2,
    "sylvis": 1,
    "perceval": 6,
    "thaddy": 4,
    "esteban": 3,
    "faramir": 3,
    "volo": 1,
    "sherpa": 3,
    "clifford": 3,
    "axel": 1,
    "larentia": 4,
    "owen": 4,
    "burroughs": 8,
    "derrick": 3,
    "saphira": 4,
    "lynette": 15,
    "paramythis": 11,
}

MountedUnits = ["reese", "ward", "elbert", "christine", "adel", "leon", "sherlock", "alvina", "ruby", "arthur",
                "clifford", "larentia", "paramythis"]
NonMounted = ["izerna", "aegina", "daoud", "enid", "marcel", "kramer", "dean", "faye", "sylvis", "perceval", "thaddy",
              "esteban", "faramir", "volo", "sherpa", "axel", "owen", "burroughs", "saphira", "lynette", "derrick"]
SwordUsers = ["reese", "ward", "elbert", "alvina", "ruby", "arthur", "clifford", "larentia", "paramythis",
              "enid", "marcel", "kramer", "faye","faramir", "volo", "sherpa",  "lynette"]
SpearUsers = ["ward", "elbert", "alvina", "adel", "leon", "ruby", "clifford", "larentia"]
AxeUsers = ["dean", "daoud", "axel", "derrick"]
MagicUsers = ["izerna", "aegina", "enid", "owen", "saphira", "lynette",  "perceval", "paramythis"]
ArmoredUnits = ["marcel", "derrick", "daoud"]
Healers = ["izerna", "owen", "saphira", "paramythis"]
BowUsers = ["christine", "sherlock", "sylvis", "esteban", "burroughs"]
ShieldUsers = ["reese", "ward", "elbert", "adel", "leon", "alvina", "ruby", "arthur", "clifford", "larentia", "daoud", "marcel", "derrick"]
ZeroRangeUsers = ["reese", "ward", "elbert", "adel", "leon", "alvina", "ruby", "arthur", "clifford", "larentia", "daoud", "derrick", "paramythis"                                                                                                                           "enid",
                  "marcel", "kramer", "faye", "faramir", "volo", "sherpa", "lynette", "dean", "axel", "czene"]
NonPrePromotes = ["reese", "elbert", "christine", "adel", "leon", "sherlock", "ruby", "arthur",
                  "larentia", "izerna", "aegina", "daoud", "enid", "marcel", "kramer", "dean", "faye", "sylvis",
                  "perceval", "thaddy", "esteban",  "axel", "burroughs", "saphira", "derrick", "czene"]

SkillLegality = {
    "locktouch": True,
    "canto": NonMounted,
    "overwatch": True,
    "watchful": True,
    "tripleshot": BowUsers,
    "counter": True,
    "shieldfaire": ShieldUsers,
    "mercy": True,
    "adept": True,
    "vantage": ZeroRangeUsers,
    "vengeful": True,
    "spearbane": True,
    "provoke": True,
    "guard": True,
    "astra": SwordUsers,
    "arrowbane": True,
    "commander": True,
    "paragon": NonPrePromotes,
    "fortune": True,
    "obfuscate": False,
    "steal": True,
    "silence": True,
    "hateful": False,
    "battlecry": True,
    "blessing": True,
    "sunder": True,
    "charisma": True,
    "acrobat": False,
    "evasion": True,
    "axeguard": AxeUsers,
    "deadeye": BowUsers,
    "huntsman": BowUsers,
    "aim": BowUsers,
    "swimmer": True,
    "resistor": True,
    "search": True,
    "onetwo": True,
    "deathmatch": True,
    "horseswap": MountedUnits,
    "throw": SpearUsers,
    "parry": SwordUsers,
    "prepared": True,
    "robust": True,
    "vulnerable": False,
    "focuschant": MagicUsers,
    "ourbond": False,
    "horselover": True,
    "robbery": True,
    "despoil": True,
    "knockaway": True,
    "iaido": SwordUsers,
    "pulverize": AxeUsers,
    "mug2": True,
    "miracle": True,
    "armsthrift": True,
    "hide": True,
    "hurry": True,
    "celerity": True,
    "swordbane": True,
    "axebane": True,
    "expert": True,
    "magicbane": True,
    "mug": True,
    "versatile": Healers,
    "slowstart": False,
    "pitchfork": SpearUsers,
    "pursuit": True,
    "doubleshot": BowUsers,
    "commander2": False,
    "return": True,
    "camouflage": True,
    "scotopic": True,
    "supporter": True,
    "climber": True,
    "windsweep": True,
    "desperation": True,
    "flourish": True,
    "robust2": False,
    "imbue": True,
    "critical": True,
    "protector": True,
    "maim": True,
}

# value of skills
SkillCapacity = {
    "locktouch": 1,
    "canto": 1,
    "overwatch": 1,
    "watchful": 1,
    "tripleshot": 3,
    "counter": 3,
    "shieldfaire": 1,
    "mercy": 1,
    "adept": 2,
    "vantage": 5,
    "vengeful": 2,
    "spearbane": 2,
    "provoke": 1,
    "guard": 1,
    "astra": 3,
    "arrowbane": 2,
    "commander": 1,
    "paragon": 1,
    "fortune": 1,
    "obfuscate": 1,
    "steal": 1,
    "silence": 3,
    "hateful": 0,
    "battlecry": 1,
    "blessing": 1,
    "sunder": 1,
    "charisma": 1,
    "acrobat": 1,
    "evasion": 2,
    "axeguard": 1,
    "deadeye": 1,
    "huntsman": 1,
    "aim": 1,
    "swimmer": 1,
    "resistor": 3,
    "search": 1,
    "onetwo": 1,
    "deathmatch": 3,
    "horseswap": 1,
    "throw": 1,
    "parry": 1,
    "prepared": 1,
    "robust": 1,
    "vulnerable": 1,
    "focuschant": 1,
    "ourbond": 1,
    "horselover": 1,
    "robbery": 1,
    "despoil": 1,
    "knockaway": 1,
    "iaido": 1,
    "pulverize": 3,
    "mug2": 2,
    "miracle": 1,
    "armsthrift": 1,
    "hide": 1,
    "hurry": 1,
    "celerity": 1,
    "swordbane": 2,
    "axebane": 2,
    "expert": 1,
    "magicbane": 2,
    "mug": 1,
    "versatile": 1,
    "slowstart": 0,
    "pitchfork": 1,
    "pursuit": 5,
    "doubleshot": 1,
    "commander2": 1,
    "return": 1,
    "camouflage": 1,
    "scotopic": 1,
    "supporter": 1,
    "climber": 1,
    "windsweep": 1,
    "desperation": 1,
    "flourish": 1,
    "robust2": 1,
    "imbue": 1,
    "critical": 2,
    "protector": 5,
    "maim": 1,
}

# displayed skill count, includes canto, promoted skills, NOT INCLUDING learned skills
DefaultSkillCapacity = {
    "reese": 5,
    "ward": 3,
    "elbert": 3,
    "christine": 5,
    "adel": 6,
    "leon": 5,
    "sherlock": 3,
    "izerna": 2,
    "czene": 7,
    "aegina": 2,
    "daoud": 4,
    "enid": 3,
    "marcel": 3,
    "alvina": 5,
    "ruby": 3,
    "arthur": 5,
    "kramer": 4,
    "dean": 4,
    "faye": 6,
    "sylvis": 6,
    "perceval": 3,
    "thaddy": 7,
    "esteban": 4,
    "faramir": 5,
    "volo": 5,
    "sherpa": 5,
    "clifford": 4,
    "axel": 5,
    "larentia": 6,
    "owen": 2,
    "burroughs": 3,
    "derrick": 4,     # reserves an option to give him celerity
    "saphira": 5,
    "lynette": 6,
    "paramythis": 6,
}

# bonuses from original skillset
LearnedSkills = {
    "reese": 0,
    "ward": 0,
    "elbert": 1,
    "christine": 0,
    "adel": 1,
    "leon": 1,
    "sherlock": 1,
    "izerna": 1,
    "czene": 0,
    "aegina": 0,
    "daoud": 0,
    "enid": 0,
    "marcel": 0,
    "alvina": 0,
    "ruby": 2,
    "arthur": 0,
    "kramer": 0,
    "dean": 1,
    "faye": 0,
    "sylvis": 0,
    "perceval": 0,
    "thaddy": 0,
    "esteban": 2,
    "faramir": 0,
    "volo": 0,
    "sherpa": 0,
    "clifford": 0,
    "axel": 0,
    "larentia": 0,
    "owen": 0,
    "burroughs": 0,
    "derrick": 0,
    "saphira": 0,
    "lynette": 0,
    "paramythis": 0,
}

LevelToStatConstant = 0.9
StatToLevelConstant = 1.11

GenericGrowth = {
    "hp": 25,
    "strength": 25,
    "speed": 25,
    "defense": 9,
    "magic": 12,
}

WeaponLevels = {
    "reese": {"sword": (8, 60), "shield": (0, 80), "sshield": (7, 0), "mshield": (0, 0)},
    "ward": {"sword": (21, 30), "spear": (28, 40), "shield": (0, 30), "mshield": (25, 0)},
    "elbert": {"sword": (12, 80), "spear": (5, 30), "shield": (0, 50), "sshield": (11, 0), "mshield": (0, 0)},
    "christine": {"sword": (0, 80), "bow": (2, 50), "crossbow": (8, 70)},
    "adel": {"spear": (4, 30), "shield": (0, 80), "sshield": (6, 0)},
    "leon": {"spear": (8, 50), "shield": (0, 40), "sshield": (4, 0)},
    "sherlock": {"bow": (9, 70)},
    "izerna": {"holy": (6, 50)},
    "czene": {"knife": (9, 60)},
    "aegina": {"wind": (6, 50), "fire": (0, 20)},
    "daoud": {"axe": (11, 60), "shield": (0, 80), "sshield": (16, 0), "mshield": (6, 0)},
    "enid": {"sword": (3, 90), "fire": (0, 80), "thunder": (0, 30)},
    "marcel": {"sword": (17, 40), "shield": (0, 70), "lshield": (20, 0)},
    "alvina": {"sword": (12, 60), "spear": (5, 60), "shield": (0, 70), "sshield": (11, 0), "mshield": (0, 0)},
    "ruby": {"sword": (2, 80), "spear": (1, 90), "shield": (0, 60), "sshield": (1, 0), "mshield": (0, 0)},
    "arthur": {"sword": (8, 50), "spear": (0, 70), "shield": (0, 90), "sshield": (9, 0), "mshield": (1, 0)},
    "kramer": {"sword": (9, 70)},
    "dean": {"axe": (17, 80)},
    "faye": {"sword": (4, 90)},
    "sylvis": {"bow": (18, 60), "crossbow": (9, 40)},
    "perceval": {"wind": (0, 20), "thunder": (9, 60)},
    "thaddy": {"knife": (13, 40)},
    "esteban": {"knife": (5, 20), "sword": (0, 90), "bow": (22, 80)},
    "faramir": {"sword": (25, 90), "bow": (22, 70)},
    "volo": {"sword": (19, 60)},
    "sherpa": {"sword": (36, 30)},
    "clifford": {"sword": (22, 50), "spear": (31, 30), "shield": (0, 40), "sshield": (23, 0), "mshield": (23, 0)},
    "axel": {"axe": (12, 30)},
    "larentia": {"sword": (14, 30), "spear": (17, 50), "shield": (0, 20), "sshield": (5, 0)},
    "owen": {"light": (18, 40), "fire": (1, 10), "thunder": (1, 10), "wind": (1, 10)},
    "burroughs": {"crossbow": (17, 90)},
    "derrick": {"axe": (14, 30), "shield": (0, 20), "lshield": (17, 0)},
    "saphira": {"holy": (1, 80)},
    "lynette": {"sword": (25, 90), "bow": (36, 90), "thunder": (35, 90)},
    "paramythis": {"sword": (26, 80), "light": (35, 40)},
}


PromoGuard = {
    "reese": {},
    "ward": {},
    "elbert": {"sword": 40, "spear": 40, "shield": 40},
    "christine": {"bow": 50, "crossbow": 50},
    "adel": {"spear": 50, "shield": 40},
    "leon": {"spear": 50, "shield": 40},
    "sherlock": {"bow": 50},
    "izerna": {"holy": 40},
    "czene": {},
    "aegina": {"wind": 60},
    "daoud": {"axe": 50, "shield": 40},
    "enid": {},
    "marcel": {},
    "alvina": {},
    "ruby": {"sword": 40, "spear": 40, "shield": 40},
    "arthur": {"sword": 40, "shield": 40},
    "kramer": {"sword": 50},
    "dean": {"axe": 50},
    "faye": {},
    "sylvis": {},
    "perceval": {"thunder": 50},
    "thaddy": {},
    "esteban": {"bow": 50},
    "faramir": {},
    "volo": {},
    "sherpa": {},
    "clifford": {},
    "axel": {},
    "larentia": {},
    "owen": {},
    "burroughs": {},
    "derrick": {},
    "saphira": {},
    "lynette": {},
    "paramythis": {},
}

# removable default skills, gonna give reese/ward robust+ to save a slot
RemovableSkills = {
    "reese": ["adept", "commander", "robust"],
    "ward": ["guard", "robust"],
    "elbert": ["provoke", "arrowbane"],
    "christine": ["aim", "horselover", "horseswap", "armsthrift"],
    "adel": ["vantage", "throw", "supporter", "pitchfork"],
    "leon": ["deathmatch", "robust", "supporter"],
    "sherlock": ["onetwo"],
    "izerna": ["blessing"],
    "czene": ["watchful", "adept"],
    "aegina": ["focuschant", "miracle"],
    "daoud": ["pulverize", "axeguard", "battlecry", "robust"],
    "enid": ["paragon", "charisma"],
    "marcel": ["shieldfaire", "guard"],
    "alvina": ["adept", "throw", "mercy", "shieldfaire"],
    "ruby": ["paragon", "axebane"],
    "arthur": ["armsthrift", "hurry", "desperation", "flourish"],
    "kramer": ["arrowbane", "climber", "knockaway"],
    "dean": ["desperation", "vengeful", "adept"],
    "faye": ["adept", "sunder", "parry", "iaido"],
    "sylvis": ["overwatch", "deadeye", "aim", "hide", "expert", "maim"],
    "perceval": ["arrowbane", "adept", "mercy"],
    "thaddy": ["provoke", "steal", "evasion", "critical"],
    "esteban": ["huntsman", "camouflage", "scotopic"],
    "faramir": ["fortune", "parry", "iaido", "celerity"],
    "volo": ["adept", "deathmatch", "despoil", "iaido"],
    "sherpa": ["counter", "guard", "robust", "windsweep"],
    "clifford": ["shieldfaire", "provoke"],
    "axel": ["robbery", "pulverize", "hide"],
    "larentia": ["adept", "throw", "windsweep", "watchful", "mercy"],
    "owen": ["expert"],
    "burroughs": ["armsthrift", "battlecry", "hurry"],
    "derrick": ["mercy", "axeguard", "throw"],
    "saphira": ["imbue", "versatile", "miracle"],
    "lynette": ["blessing", "charisma", "mercy", "magicbane", "protector"],
    "paramythis": ["pursuit", "versatile", "flourish", "camouflage", "imbue"],
}

WeaponEnd = 0x18D
OrbsStart = 0x0FD
HealOrbsStart = 0x11C
OrbsEnd = 0x149

EnemySkillSet1 = [
    "overwatch", "shieldfaire", "arrowbane", "commander", "fortune", "obfuscate", "sunder", "charisma", "acrobat", "axeguard",
    "swimmer", "resistor", "onetwo", "throw", "parry", "prepared", "robust", "knockaway", "iaido", "hide",
    "hurry", "celerity", "expert", "mug", "versatile", "camouflage", "scotopic", "supporter", "climber", "windsweep",
    "flourish", "imbue", "maim", "deadeye", "huntsman", "aim", "doubleshot", "focuschant"]

EnemySkillSet2 = ["counter", "adept", "vengeful", "desperation", "pursuit", "critical"]

EnemySkillSet3 = ["swordbane", "spearbane", "axebane", "arrowbane", "magicbane"]

LightFootUnits = ["czene", "kramer", "dean", "faye", "sylvis", "thaddy", "esteban", "faramir", "volo", "sherpa", "axel"]
MagicUnits = ["izerna", "aegina", "enid", "owen", "saphira", "lynette",  "perceval"]
ThiefUnits = ["czene", "thaddy"]
PhysicalUnits = ["reese", "ward", "elbert", "christine", "adel", "leon", "sherlock", "alvina", "ruby", "arthur",
                 "clifford", "larentia", "daoud", "marcel", "kramer", "dean", "faye", "sylvis", "thaddy",
                 "esteban", "faramir", "volo", "sherpa", "axel", "burroughs", "derrick"]

LightUnitGrowth = {"strength": 45, "defense": 18, "speed": 45, "hp": 50, "magic": 25}
MagicUnitGrowth = {"strength": 25, "defense": 12, "speed": 40, "hp": 35, "magic": 40}
ThiefGrowth = {"strength": 25, "defense": 12, "speed": 40, "hp": 35, "magic": 25}
HeavyUnitGrowth = {"strength": 50, "defense": 24, "speed": 40, "hp": 50, "magic": 20}

# safe enemy classes to use
EnemyClasses = [
    "Spearman", "SpearRider_R", "SpearRider", "ImperialSpearman", "ImperialSpearRider_R", "ImperialSpearRider",
    "Farmer", "VerianKnight_R", "VerianKnight", "VerianKnight2_R", "VerianKnight2", "ImperialKnight_R",
    "ImperialKnight", "Guardian", "ImperialPaladin_R", "ImperialPaladin", "HighKnight_R", "HighKnight2_R",
    "General", "WyvernKnight_R", "WyvernKnight", "WyvernLord_R", "WyvernLord", "Axeman", "ImperialAxeman",
    "AxeGuard", "ArmorKnight", "Bowman", "BowRider_R", "BowRider", "Gunner", "HeavyGunner", "ImperialBowman",
    "ImperialBowRider_R", "ImperialBowRider", "ImperialGunner", "ImperialHeavyGunner", "Marksman",
    "ImperialMarksman", "Warrior", "Hunter", "Chief", "Bandit", "Corsair", "Ruffian_R", "Ruffian", "Pickpocket",
    "Outlaw", "Assassin", "Rogue", "RazeMonk", "RazePriest", "RazeBishop", "DarkMaster", "RazeWarMonk",
    "RogueGuard", "RogueArcher", "RogueGunner", "RogueWarrior", "SnowBandit", "Barbarian", "Duke", "Scoundrel",
    "RazeWarMonk2", "FailedPoet", "RazeBishop2", "King", "Captain", "Huntress", "DragonKnight_R", "DragonKnight",
]

# well they don't need bonuses
ToughEnemies = [
    "GigasKnight", "Ballistician", "Flamewyrm", "Icewyrm", "Levinwyrm", "Wyvern",
    "LanceKnight_R", "LanceKnight", "LanceKnight2_R", "LanceKnight2", "BlackRider_R", "BlackRider",
]

# give them more magic
MagicalEnemies = [
    "RazeMonk", "RazePriest", "RazeBishop", "DarkMaster", "RazeWarMonk", "RazeWarMonk2",
]

# probably don't give these guys magic bonus
ArmoredEnemies = [
    "ArmorKnight", "Guardian", "General", "WyvernKnight_R", "WyvernLord_R", "DragonKnight_R",
    "AxeGuard", "AxeSoldier", "AxeSergeant",
]

# enemy classes that the player has, please ignore derrick
SharedEnemies = [
    "AxeSoldier", "AxeSergeant", "VeteranKnight_R", "VeteranKnight", "Mercenary", "Swordfighter",  # "ArmorKnight"
]

ExoticWeapons = [
    "Crotalus", "Carnwenhau", "TempestKnife",
    "Zweihander", "Brymranger", "Gram", "Balmung", "RazeEtoile", "Nothung",
    "Cutlass", "Cutlass+", "Balmung2", "Balmung3",
    "InfernalEdge", "Colichemarde", "Grimhild", "Harperia", "Adrastia",
    "Fauchard", "Drakelance", "Euthyphro", "GreatLance", "Angon", "Brionac",
    "MaozaWolf", "Bhuj", "Tabarzin", "Mjollnir", "Gullveig",
    "Pascanion", "SereniaBow", "Pascanion2", "Apeiron", "Rossweisse", "RapidCrossbow", "Ollerus",
    "Perseid", "Vollenden", "Aiantos", "WyrmskinShield", "DarkShield", "Hestia"
]


BaseLevel = {
    "reese": 1,
    "ward": 22,
    "elbert": 4,
    "christine": 1,
    "adel": 1,
    "leon": 1,
    "sherlock": 3,
    "izerna": 1,
    "czene": 1,
    "aegina": 1,
    "daoud": 6,
    "enid": 1,
    "marcel": 5,
    "alvina": 12,
    "ruby": 1,
    "arthur": 2,
    "kramer": 3,
    "dean": 4,
    "faye": 1,
    "sylvis": 3,
    "perceval": 4,
    "thaddy": 2,
    "esteban": 2,
    "faramir": 10,
    "volo": 13,
    "sherpa": 14,
    "clifford": 20,
    "axel": 5,
    "larentia": 5,
    "owen": 12,
    "burroughs": 4,
    "derrick": 3,
    "saphira": 1,
    "lynette": 17,
    "paramythis": 16,
}

JoiningChapter = {
    "reese": 1,
    "ward": 1,
    "elbert": 1,
    "christine": 1,
    "adel": 1,
    "leon": 1,
    "sherlock": 1,
    "izerna": 1,
    "czene": 2,
    "aegina": 3,
    "daoud": 4,
    "enid": 6,
    "marcel": 5,
    "alvina": 9,
    "ruby": 1,
    "arthur": 1,
    "kramer": 2,
    "dean": 1,
    "faye": 2,
    "sylvis": 1,
    "perceval": 6,
    "thaddy": 4,
    "esteban": 3,
    "faramir": 3,
    "volo": 1,
    "sherpa": 3,
    "clifford": 3,
    "axel": 1,
    "larentia": 4,
    "owen": 4,
    "burroughs": 8,
    "derrick": 3,
    "saphira": 4,
    "lynette": 15,
    "paramythis": 11,
}

MountedUnits = ["reese", "ward", "elbert", "christine", "adel", "leon", "sherlock", "alvina", "ruby", "arthur",
                "clifford", "larentia", "paramythis"]
NonMounted = ["izerna", "aegina", "daoud", "enid", "marcel", "kramer", "dean", "faye", "sylvis", "perceval", "thaddy",
              "esteban", "faramir", "volo", "sherpa", "axel", "owen", "burroughs", "saphira", "lynette", "derrick"]
SwordUsers = ["reese", "ward", "elbert", "alvina", "ruby", "arthur", "clifford", "larentia", "paramythis",
              "enid", "marcel", "kramer", "faye","faramir", "volo", "sherpa",  "lynette"]
SpearUsers = ["ward", "elbert", "alvina", "adel", "leon", "ruby", "clifford", "larentia"]
AxeUsers = ["dean", "daoud", "axel", "derrick"]
MagicUsers = ["izerna", "aegina", "enid", "owen", "saphira", "lynette",  "perceval", "paramythis"]
ArmoredUnits = ["marcel", "derrick", "daoud"]
Healers = ["izerna", "owen", "saphira", "paramythis"]
BowUsers = ["christine", "sherlock", "sylvis", "esteban", "burroughs"]
ShieldUsers = ["reese", "ward", "elbert", "adel", "leon", "alvina", "ruby", "arthur", "clifford", "larentia", "daoud", "marcel", "derrick"]
ZeroRangeUsers = ["reese", "ward", "elbert", "adel", "leon", "alvina", "ruby", "arthur", "clifford", "larentia", "daoud", "derrick", "paramythis"                                                                                                                           "enid",
                  "marcel", "kramer", "faye", "faramir", "volo", "sherpa", "lynette", "dean", "axel", "czene"]
NonPrePromotes = ["reese", "elbert", "christine", "adel", "leon", "sherlock", "ruby", "arthur",
                  "larentia", "izerna", "aegina", "daoud", "enid", "marcel", "kramer", "dean", "faye", "sylvis",
                  "perceval", "thaddy", "esteban",  "axel", "burroughs", "saphira", "derrick", "czene"]

SkillLegality = {
    "locktouch": True,
    "canto": NonMounted,
    "overwatch": True,
    "watchful": True,
    "tripleshot": BowUsers,
    "counter": True,
    "shieldfaire": ShieldUsers,
    "mercy": True,
    "adept": True,
    "vantage": ZeroRangeUsers,
    "vengeful": True,
    "spearbane": True,
    "provoke": True,
    "guard": True,
    "astra": SwordUsers,
    "arrowbane": True,
    "commander": True,
    "paragon": NonPrePromotes,
    "fortune": True,
    "obfuscate": False,
    "steal": True,
    "silence": True,
    "hateful": False,
    "battlecry": True,
    "blessing": True,
    "sunder": True,
    "charisma": True,
    "acrobat": False,
    "evasion": True,
    "axeguard": AxeUsers,
    "deadeye": BowUsers,
    "huntsman": BowUsers,
    "aim": BowUsers,
    "swimmer": True,
    "resistor": True,
    "search": True,
    "onetwo": True,
    "deathmatch": True,
    "horseswap": MountedUnits,
    "throw": SpearUsers,
    "parry": SwordUsers,
    "prepared": True,
    "robust": True,
    "vulnerable": False,
    "focuschant": MagicUsers,
    "ourbond": False,
    "horselover": True,
    "robbery": True,
    "despoil": True,
    "knockaway": True,
    "iaido": SwordUsers,
    "pulverize": AxeUsers,
    "mug2": True,
    "miracle": True,
    "armsthrift": True,
    "hide": True,
    "hurry": True,
    "celerity": True,
    "swordbane": True,
    "axebane": True,
    "expert": True,
    "magicbane": True,
    "mug": True,
    "versatile": Healers,
    "slowstart": False,
    "pitchfork": SpearUsers,
    "pursuit": True,
    "doubleshot": BowUsers,
    "commander2": False,
    "return": True,
    "camouflage": True,
    "scotopic": True,
    "supporter": True,
    "climber": True,
    "windsweep": True,
    "desperation": True,
    "flourish": True,
    "robust2": False,
    "imbue": True,
    "critical": True,
    "protector": True,
    "maim": True,
}

# value of skills
SkillCapacity = {
    "locktouch": 1,
    "canto": 1,
    "overwatch": 1,
    "watchful": 1,
    "tripleshot": 3,
    "counter": 3,
    "shieldfaire": 1,
    "mercy": 1,
    "adept": 2,
    "vantage": 5,
    "vengeful": 2,
    "spearbane": 2,
    "provoke": 1,
    "guard": 1,
    "astra": 3,
    "arrowbane": 2,
    "commander": 1,
    "paragon": 1,
    "fortune": 1,
    "obfuscate": 1,
    "steal": 1,
    "silence": 3,
    "hateful": 0,
    "battlecry": 1,
    "blessing": 1,
    "sunder": 1,
    "charisma": 1,
    "acrobat": 1,
    "evasion": 2,
    "axeguard": 1,
    "deadeye": 1,
    "huntsman": 1,
    "aim": 1,
    "swimmer": 1,
    "resistor": 3,
    "search": 1,
    "onetwo": 1,
    "deathmatch": 3,
    "horseswap": 1,
    "throw": 1,
    "parry": 1,
    "prepared": 1,
    "robust": 1,
    "vulnerable": 1,
    "focuschant": 1,
    "ourbond": 1,
    "horselover": 1,
    "robbery": 1,
    "despoil": 1,
    "knockaway": 1,
    "iaido": 1,
    "pulverize": 3,
    "mug2": 2,
    "miracle": 1,
    "armsthrift": 1,
    "hide": 1,
    "hurry": 1,
    "celerity": 1,
    "swordbane": 2,
    "axebane": 2,
    "expert": 1,
    "magicbane": 2,
    "mug": 1,
    "versatile": 1,
    "slowstart": 0,
    "pitchfork": 1,
    "pursuit": 5,
    "doubleshot": 1,
    "commander2": 1,
    "return": 1,
    "camouflage": 1,
    "scotopic": 1,
    "supporter": 1,
    "climber": 1,
    "windsweep": 1,
    "desperation": 1,
    "flourish": 1,
    "robust2": 1,
    "imbue": 1,
    "critical": 2,
    "protector": 5,
    "maim": 1,
}

# displayed skill count, includes canto, promoted skills, NOT INCLUDING learned skills
DefaultSkillCapacity = {
    "reese": 5,
    "ward": 3,
    "elbert": 3,
    "christine": 5,
    "adel": 6,
    "leon": 5,
    "sherlock": 3,
    "izerna": 2,
    "czene": 7,
    "aegina": 2,
    "daoud": 4,
    "enid": 3,
    "marcel": 3,
    "alvina": 5,
    "ruby": 3,
    "arthur": 5,
    "kramer": 4,
    "dean": 4,
    "faye": 6,
    "sylvis": 6,
    "perceval": 3,
    "thaddy": 7,
    "esteban": 4,
    "faramir": 5,
    "volo": 5,
    "sherpa": 5,
    "clifford": 4,
    "axel": 5,
    "larentia": 6,
    "owen": 2,
    "burroughs": 3,
    "derrick": 4,     # reserves an option to give him celerity
    "saphira": 5,
    "lynette": 6,
    "paramythis": 6,
}

# bonuses from original skillset
LearnedSkills = {
    "reese": 0,
    "ward": 0,
    "elbert": 1,
    "christine": 0,
    "adel": 1,
    "leon": 1,
    "sherlock": 1,
    "izerna": 1,
    "czene": 0,
    "aegina": 0,
    "daoud": 0,
    "enid": 0,
    "marcel": 0,
    "alvina": 0,
    "ruby": 2,
    "arthur": 0,
    "kramer": 0,
    "dean": 1,
    "faye": 0,
    "sylvis": 0,
    "perceval": 0,
    "thaddy": 0,
    "esteban": 2,
    "faramir": 0,
    "volo": 0,
    "sherpa": 0,
    "clifford": 0,
    "axel": 0,
    "larentia": 0,
    "owen": 0,
    "burroughs": 0,
    "derrick": 0,
    "saphira": 0,
    "lynette": 0,
    "paramythis": 0,
}

LevelToStatConstant = 0.9
StatToLevelConstant = 1.11

GenericGrowth = {
    "hp": 25,
    "strength": 25,
    "speed": 25,
    "defense": 9,
    "magic": 12,
}

WeaponLevels = {
    "reese": {"sword": (8, 60), "shield": (0, 80), "sshield": (7, 0), "mshield": (0, 0)},
    "ward": {"sword": (21, 30), "spear": (28, 40), "shield": (0, 30), "mshield": (25, 0)},
    "elbert": {"sword": (12, 80), "spear": (5, 30), "shield": (0, 50), "sshield": (11, 0), "mshield": (0, 0)},
    "christine": {"sword": (0, 80), "bow": (2, 50), "crossbow": (8, 70)},
    "adel": {"spear": (4, 30), "shield": (0, 80), "sshield": (6, 0)},
    "leon": {"spear": (8, 50), "shield": (0, 40), "sshield": (4, 0)},
    "sherlock": {"bow": (9, 70)},
    "izerna": {"holy": (6, 50)},
    "czene": {"knife": (9, 60)},
    "aegina": {"wind": (6, 50), "fire": (0, 20)},
    "daoud": {"axe": (11, 60), "shield": (0, 80), "sshield": (16, 0), "mshield": (6, 0)},
    "enid": {"sword": (3, 90), "fire": (0, 80), "thunder": (0, 30)},
    "marcel": {"sword": (17, 40), "shield": (0, 70), "lshield": (20, 0)},
    "alvina": {"sword": (12, 60), "spear": (5, 60), "shield": (0, 70), "sshield": (11, 0), "mshield": (0, 0)},
    "ruby": {"sword": (2, 80), "spear": (1, 90), "shield": (0, 60), "sshield": (1, 0), "mshield": (0, 0)},
    "arthur": {"sword": (8, 50), "spear": (0, 70), "shield": (0, 90), "sshield": (9, 0), "mshield": (1, 0)},
    "kramer": {"sword": (9, 70)},
    "dean": {"axe": (17, 80)},
    "faye": {"sword": (4, 90)},
    "sylvis": {"bow": (18, 60), "crossbow": (9, 40)},
    "perceval": {"wind": (0, 20), "thunder": (9, 60)},
    "thaddy": {"knife": (13, 40)},
    "esteban": {"knife": (5, 20), "sword": (0, 90), "bow": (22, 80)},
    "faramir": {"sword": (25, 90), "bow": (22, 70)},
    "volo": {"sword": (19, 60)},
    "sherpa": {"sword": (36, 30)},
    "clifford": {"sword": (22, 50), "spear": (31, 30), "shield": (0, 40), "sshield": (23, 0), "mshield": (23, 0)},
    "axel": {"axe": (12, 30)},
    "larentia": {"sword": (14, 30), "spear": (17, 50), "shield": (0, 20), "sshield": (5, 0)},
    "owen": {"light": (18, 40), "fire": (1, 10), "thunder": (1, 10), "wind": (1, 10)},
    "burroughs": {"crossbow": (17, 90)},
    "derrick": {"axe": (14, 30), "shield": (0, 20), "lshield": (17, 0)},
    "saphira": {"holy": (1, 80)},
    "lynette": {"sword": (25, 90), "bow": (36, 90), "thunder": (35, 90)},
    "paramythis": {"sword": (26, 80), "light": (35, 40)},
}


PromoGuard = {
    "reese": {},
    "ward": {},
    "elbert": {"sword": 40, "spear": 40, "shield": 40},
    "christine": {"bow": 50, "crossbow": 50},
    "adel": {"spear": 50, "shield": 40},
    "leon": {"spear": 50, "shield": 40},
    "sherlock": {"bow": 50},
    "izerna": {"holy": 40},
    "czene": {},
    "aegina": {"wind": 60},
    "daoud": {"axe": 50, "shield": 40},
    "enid": {},
    "marcel": {},
    "alvina": {},
    "ruby": {"sword": 40, "spear": 40, "shield": 40},
    "arthur": {"sword": 40, "shield": 40},
    "kramer": {"sword": 50},
    "dean": {"axe": 50},
    "faye": {},
    "sylvis": {},
    "perceval": {"thunder": 50},
    "thaddy": {},
    "esteban": {"bow": 50},
    "faramir": {},
    "volo": {},
    "sherpa": {},
    "clifford": {},
    "axel": {},
    "larentia": {},
    "owen": {},
    "burroughs": {},
    "derrick": {},
    "saphira": {},
    "lynette": {},
    "paramythis": {},
}

# removable default skills, gonna give reese/ward robust+ to save a slot
RemovableSkills = {
    "reese": ["adept", "commander", "robust"],
    "ward": ["guard", "robust"],
    "elbert": ["provoke", "arrowbane"],
    "christine": ["aim", "horselover", "horseswap", "armsthrift"],
    "adel": ["vantage", "throw", "supporter", "pitchfork"],
    "leon": ["deathmatch", "robust", "supporter"],
    "sherlock": ["onetwo"],
    "izerna": ["blessing"],
    "czene": ["watchful", "adept"],
    "aegina": ["focuschant", "miracle"],
    "daoud": ["pulverize", "axeguard", "battlecry", "robust"],
    "enid": ["paragon", "charisma"],
    "marcel": ["shieldfaire", "guard"],
    "alvina": ["adept", "throw", "mercy", "shieldfaire"],
    "ruby": ["paragon", "axebane"],
    "arthur": ["armsthrift", "hurry", "desperation", "flourish"],
    "kramer": ["arrowbane", "climber", "knockaway"],
    "dean": ["desperation", "vengeful", "adept"],
    "faye": ["adept", "sunder", "parry", "iaido"],
    "sylvis": ["overwatch", "deadeye", "aim", "hide", "expert", "maim"],
    "perceval": ["arrowbane", "adept", "mercy"],
    "thaddy": ["provoke", "steal", "evasion", "critical"],
    "esteban": ["huntsman", "camouflage", "scotopic"],
    "faramir": ["fortune", "parry", "iaido", "celerity"],
    "volo": ["adept", "deathmatch", "despoil", "iaido"],
    "sherpa": ["counter", "guard", "robust", "windsweep"],
    "clifford": ["shieldfaire", "provoke"],
    "axel": ["robbery", "pulverize", "hide"],
    "larentia": ["adept", "throw", "windsweep", "watchful", "mercy"],
    "owen": ["expert"],
    "burroughs": ["armsthrift", "battlecry", "hurry"],
    "derrick": ["mercy", "axeguard", "throw"],
    "saphira": ["imbue", "versatile", "miracle"],
    "lynette": ["blessing", "charisma", "mercy", "magicbane", "protector"],
    "paramythis": ["pursuit", "versatile", "flourish", "camouflage", "imbue"],
}

WeaponEnd = 0x18D
OrbsStart = 0x0FD
HealOrbsStart = 0x11C
OrbsEnd = 0x149

EnemySkillSet1 = [
    "overwatch", "shieldfaire", "arrowbane", "commander", "fortune", "obfuscate", "sunder", "charisma", "acrobat", "axeguard",
    "swimmer", "resistor", "onetwo", "throw", "parry", "prepared", "robust", "knockaway", "iaido", "hide",
    "hurry", "celerity", "expert", "mug", "versatile", "camouflage", "scotopic", "supporter", "climber", "windsweep",
    "flourish", "imbue", "maim", "deadeye", "huntsman", "aim", "doubleshot", "focuschant"]

EnemySkillSet2 = ["counter", "adept", "vengeful", "desperation", "pursuit", "critical"]

EnemySkillSet3 = ["swordbane", "spearbane", "axebane", "arrowbane", "magicbane"]

LightFootUnits = ["czene", "kramer", "dean", "faye", "sylvis", "thaddy", "esteban", "faramir", "volo", "sherpa", "axel"]
MagicUnits = ["izerna", "aegina", "enid", "owen", "saphira", "lynette",  "perceval"]
ThiefUnits = ["czene", "thaddy"]
PhysicalUnits = ["reese", "ward", "elbert", "christine", "adel", "leon", "sherlock", "alvina", "ruby", "arthur",
                 "clifford", "larentia", "daoud", "marcel", "kramer", "dean", "faye", "sylvis", "thaddy",
                 "esteban", "faramir", "volo", "sherpa", "axel", "burroughs", "derrick"]

LightUnitGrowth = {"strength": 45, "defense": 18, "speed": 45, "hp": 50, "magic": 25}
MagicUnitGrowth = {"strength": 25, "defense": 12, "speed": 40, "hp": 35, "magic": 40}
ThiefGrowth = {"strength": 25, "defense": 12, "speed": 40, "hp": 35, "magic": 25}
HeavyUnitGrowth = {"strength": 50, "defense": 24, "speed": 40, "hp": 50, "magic": 20}
# safe enemy classes to use # well they don't need bonuses # give them more magic # probably don't give these guys magic bonus # enemy classes that the player has, please ignore derrick # "ArmorKnight" # value of skills # displayed skill count, includes canto, promoted skills, NOT INCLUDING learned skills # reserves an option to give him celerity # bonuses from original skillset # removable default skills, gonna give reese/ward robust+ to save a slot