Skills Defines

#ifndef SKILLS_H
#define SKILLS_H

#include <classes.h>

#define MAX_DISPLAY_SKILL 100
#define MAX_HIDDEN_SKILL 110
#define MAX_UNDEFINED_SKILL 10

#define FIGHTER_RATE  (["Longsword" : 10, "Shortsword" : 10, "Axe" : 9,\
                        "Curved Blade" : 9, "Two Handed Sword" : 9,\
                        "Two Handed Axe" : 9, "Spear" : 10, "Knife" : 9,\
                        "Staff" : 9, "Flail" : 9, "Club" : 10,\
                        "Rapier" : 9, "Polearm" : 9,\
                        "Exotic" : 7, "Marksmanship" : 9, "Two Weapon": 6,\
                        "Unarmed" : 10])
#define RANGER_RATE   (["Longsword" : 7, "Shortsword" : 8, "Axe" : 7 ,\
                        "Curved Blade" : 6, "Two Handed Sword" : 5,\
                        "Two Handed Axe" : 7, "Spear" : 8, "Knife" : 9,\
                        "Staff" : 5, "Flail" : 4, "Club" : 6,\
                        "Rapier" : 5, "Polearm" : 5,\
                        "Exotic" : 4, "Marksmanship" : 10, "Two Weapon": 4,\
                        "Unarmed" : 8])
#define PALADIN_RATE  (["Longsword" : 9, "Shortsword" : 8, "Axe" : 6,\
                        "Curved Blade" : 7, "Two Handed Sword" : 7,\
                        "Two Handed Axe" : 5, "Spear" : 6, "Knife" : 5,\
                        "Staff" : 6, "Flail" : 6, "Club" : 6,\
                        "Rapier" : 7, "Polearm" : 8,\
                        "Exotic" : 6, "Marksmanship" : -5, "Two Weapon": 4,\
                        "Unarmed" : 8])
#define ADVENTURER_RATE (["Longsword" : 6, "Shortsword" : 6, "Axe" : 6 ,\
                        "Curved Blade" : 6, "Two Handed Sword" : 6,\
                        "Two Handed Axe" : 6, "Spear" : 6, "Knife" : 6,\
                        "Staff" : 6, "Flail" : 6, "Club" : 6,\
                        "Rapier" : 6, "Polearm" : 6,\
                        "Exotic" : 4, "Marksmanship" : 6, "Two Weapon": 2,\
                        "Unarmed" : 6])
#define ROGUE_RATE    (["Longsword" : 5, "Shortsword" : 7, "Axe" :  2,\
                        "Curved Blade" : 7, "Two Handed Sword" : 3,\
                        "Two Handed Axe" : 2, "Spear" : 4, "Knife" : 10,\
                        "Staff" : 5, "Flail" : 4, "Club" : 6,\
                        "Rapier" : 7, "Polearm" : 4,\
                        "Exotic" : 2, "Marksmanship" : 8, "Two Weapon": 3,\
                        "Unarmed" : 5]) 
#define CLERIC_RATE   (["Longsword" : 4, "Shortsword" : 4, "Axe" : 3 ,\
                        "Curved Blade" : 3, "Two Handed Sword" : 2,\
                        "Two Handed Axe" : 2, "Spear" : 3, "Knife" : 5,\
                        "Staff" : 6, "Flail" : 7, "Club" : 7,\
                        "Rapier" : 3, "Polearm" : 3,\
                        "Exotic" : -1, "Marksmanship" : 3, "Two Weapon": 3,\
                        "Unarmed" : 4])
#define NECROMANCER_RATE (["Longsword" : 2, "Shortsword" : 3, "Axe" : 1 ,\
                        "Curved Blade" : 1, "Two Handed Sword" : -1,\
                        "Two Handed Axe" : -2, "Spear" : 1, "Knife" : 5,\
                        "Staff" : 3, "Flail" : 1, "Club" : 1,\
                        "Rapier" : 2, "Polearm" : 1,\
                        "Exotic" : -1, "Marksmanship" : 2, "Two Weapon": -1,\
                        "Unarmed" : 2])
#define MAGE_RATE     (["Longsword" : 0, "Shortsword" : 1, "Axe" : 0 ,\
                        "Curved Blade" : 1, "Two Handed Sword" : -2,\
                        "Two Handed Axe" : -2, "Spear" : 0, "Knife" : 4,\
                        "Staff" : 5, "Flail" : 1, "Club" : 1,\
                        "Rapier" : 1, "Polearm" : 1,\
                        "Exotic" : -2, "Marksmanship" : 2, "Two Weapon": -1,\
                        "Unarmed" : 1])
#define SHIFTER_RATE   (["Longsword" : 3, "Shortsword" : 4, "Axe" : 6 ,\
                        "Curved Blade" : 4, "Two Handed Sword" : 2,\
                        "Two Handed Axe" : 4, "Spear" : 7, "Knife" : 7,\
                        "Staff" : 6, "Flail" : 4, "Club" : 7,\
                        "Rapier" : 3, "Polearm" : 2,\
                        "Exotic" : -1, "Marksmanship" : 6, "Two Weapon": 4,\
                        "Unarmed" : 9])
#define ARTIFICER_RATE (["Longsword" : 3, "Shortsword" : 3, "Axe" : 3 ,\
                        "Curved Blade" : 5, "Two Handed Sword" : 2,\
                        "Two Handed Axe" : 2, "Spear" : 3, "Knife" : 7,\
                        "Staff" : 3, "Flail" : 4, "Club" : 7,\
                        "Rapier" : 2, "Polearm" : 3,\
                        "Exotic" : -1, "Marksmanship" : 7, "Two Weapon": 0,\
                        "Unarmed" : 4])
#define MARINER_RATE  (["Longsword" : 7, "Shortsword" : 7, "Axe" : 6,\
                        "Curved Blade" : 10, "Two Handed Sword" : 5,\
                        "Two Handed Axe" : 5, "Spear" : 9, "Knife" : 9,\
                        "Staff" : 5, "Flail" : 5, "Club" : 7,\
                        "Rapier" : 6, "Polearm" : 5,\
                        "Exotic" : 5, "Marksmanship" : 7, "Two Weapon" : 0,\
                        "Unarmed" : 10])
#define PSION_RATE    (["Longsword" : 0, "Shortsword" : 0, "Axe" : 0 ,\
                        "Curved Blade" : 0, "Two Handed Sword" : -2,\
                        "Two Handed Axe" : -2, "Spear" : 0, "Knife" : 3,\
                        "Staff" : 5, "Flail" : 0, "Club" : 0,\
                        "Rapier" : 0, "Polearm" : 0,\
                        "Exotic" : -2, "Marksmanship" : 0, "Two Weapon" : -1,\
                        "Unarmed" : 3])

#define JAOCHI_RATE (["Longsword" : 2, "Shortsword" : 3, "Axe" : 3 ,\
                        "Curved Blade" : 1, "Two Handed Sword" : 1,\
                        "Two Handed Axe" : 1, "Spear" : 3, "Knife" : 4,\
                        "Staff" : 4, "Flail" : 2, "Club" : 3,\
                        "Rapier" : 2, "Polearm" : 1,\
                        "Exotic" : 0, "Marksmanship" : 2, "Two Weapon": 0,\
                        "Unarmed" : 10])

#define SOULBINDER_RATE (["Longsword" : 1, "Shortsword" : 5, "Axe" : 3 ,\
                        "Curved Blade" : 4, "Two Handed Sword" : -1,\
                        "Two Handed Axe" : -2, "Spear" : 0, "Knife" : 5,\
                        "Staff" : 2, "Flail" : 3, "Club" : 3,\
                        "Rapier" : 4, "Polearm" : 0,\
                        "Exotic" : -1, "Marksmanship" : -3, "Two Weapon": 2,\
                        "Unarmed" : 5])

#define SKILL_RATES ([\
  FIGHTER : FIGHTER_RATE,\
  RANGER : RANGER_RATE,\
  PALADIN : PALADIN_RATE,\
  COMMUNICATOR: ADVENTURER_RATE,\
  ADVENTURER : ADVENTURER_RATE,\
  SHIFTER : SHIFTER_RATE,\
  ROGUE : ROGUE_RATE,\
  CLERIC : CLERIC_RATE,\
  NECROMANCER : NECROMANCER_RATE,\
  ARTIFICER : ARTIFICER_RATE,\
  MAGE : MAGE_RATE,\
  MARINER : MARINER_RATE,\
  MINER : ADVENTURER_RATE,\
  PSION : PSION_RATE,\
  JAOCHI : JAOCHI_RATE,\
  SOULBINDER: SOULBINDER_RATE,\
])

#define P_LONGSWORD   "Longsword" : \
                         (["Shortsword" : 15, "Two Handed Sword" : 20,\
                           "Curved Blade" : 20 , "Knife" : 5,"Rapier":1])

#define P_SHORTSWORD   "Shortsword" : \
                         (["Longsword" : 15, "Two Handed Sword" : 5,\
                           "Curved Blade" : 20, "Knife": 15,"Rapier":1 ])

#define P_TWO_HANDED_SWORD  "Two Handed Sword" : \
                         (["Longsword" : 20, "Shortsword" : 5,\
                           "Curved Blade" : 15 ])

#define P_CURVED_BLADE "Curved Blade" : \
                         (["Longsword" : 20, "Two Handed Sword" : 15,\
                           "Shortsword" : 20, "Knife" : 10,"Rapier":1 ])

#define P_KNIFE        "Knife" :\
                         (["Longsword" : 5, "Shortsword" : 15,\
                           "Curved Blade" : 10,"Rapier":1 ])

#define P_STAFF        "Staff" :\
                         (["Spear" : 20,"Polearm":1 ])

#define P_SPEAR        "Spear" :\
                         (["Staff" : 20,"Polearm":1 ])

#define P_AXE          "Axe" :\
                         (["Two Handed Axe" : 20, "Club" : 10 ])

#define P_CLUB        "Club" :\
                         (["Axe" : 10, "Two Handed Axe" : 5 ])

#define P_TWO_HANDED_AXE "Two Handed Axe" : \
                         (["Axe" : 20, "Club" : 5 ])

#define P_POLEARM     "Polearm":(["Staff":1,"Spear":1])

#define P_RAPIER      "Rapier":(["Longsword" : 20,"Shortsword" : 20,\
                                 "Knife" : 10,"Curved Blade":1])

#define PARTIAL_LEARNING ([\
  P_LONGSWORD, P_SHORTSWORD, P_TWO_HANDED_SWORD, P_CURVED_BLADE, P_KNIFE,\
  P_STAFF, P_SPEAR, P_AXE, P_CLUB, P_TWO_HANDED_AXE, P_POLEARM, P_RAPIER,\
])

#define FIGHTER_MAX (["Longsword" : 100, "Shortsword" : 100, "Axe" : 100 ,\
                      "Curved Blade" : 100, "Two Handed Sword" : 100,\
                      "Two Handed Axe" : 100, "Spear" : 100, "Knife" : 100,\
                      "Staff" : 100, "Flail" : 100, "Club" : 100,\
                      "Rapier": 100, "Polearm" : 100,\
                      "Exotic" : 90, "Marksmanship" : 90, "Two Weapon": 80,\
                      "Unarmed" : 100])
#define RANGER_MAX  (["Longsword" : 85, "Shortsword" : 90, "Axe" : 90 ,\
                      "Curved Blade" : 80, "Two Handed Sword" : 75,\
                      "Two Handed Axe" : 85, "Spear" : 90, "Knife" : 90,\
                      "Staff" : 75, "Flail" : 70, "Club" : 70,\
                      "Rapier" : 65, "Polearm" : 75,\
                      "Exotic" : 60, "Marksmanship" : 100, "Two Weapon": 70,\
                      "Unarmed" : 85])
#define PALADIN_MAX (["Longsword" : 95, "Shortsword" : 90, "Axe" : 80,\
                      "Curved Blade" : 75, "Two Handed Sword" : 85,\
                      "Two Handed Axe" : 80, "Spear" : 75, "Knife" : 80,\
                      "Staff" : 75, "Flail" : 85, "Club" : 80,\
                      "Rapier" : 85, "Polearm" : 90,\
                      "Exotic" : 70, "Marksmanship" : 0, "Two Weapon": 70,\
                      "Unarmed" : 80])
#define ADVENTURER_MAX (["Longsword" : 70, "Shortsword" : 70, "Axe" : 70 ,\
                      "Curved Blade" : 70, "Two Handed Sword" : 70,\
                      "Two Handed Axe" : 70, "Spear" : 70, "Knife" : 70,\
                      "Staff" : 70, "Flail" : 70, "Club" : 70,\
                      "Rapier" : 70, "Polearm" : 70,\
                      "Exotic" : 10, "Marksmanship" : 70, "Two Weapon": 50,\
                      "Unarmed" : 70])
#define ROGUE_MAX   (["Longsword" : 65, "Shortsword" : 85, "Axe" :  40,\
                      "Curved Blade" : 85, "Two Handed Sword" : 45,\
                      "Two Handed Axe" : 35, "Spear" : 70, "Knife" : 100,\
                      "Staff" : 60, "Flail" : 65, "Club" : 80,\
                      "Rapier" : 85, "Polearm" : 60,\
                      "Exotic" : 40, "Marksmanship" : 90, "Two Weapon": 60,\
                      "Unarmed" : 75])
#define CLERIC_MAX  (["Longsword" : 60, "Shortsword" : 55, "Axe" : 60 ,\
                      "Curved Blade" : 50, "Two Handed Sword" : 45,\
                      "Two Handed Axe" : 45, "Spear" : 55, "Knife" : 65,\
                      "Staff" : 80, "Flail" : 90, "Club" : 90,\
                      "Rapier" : 55, "Polearm" : 50,\
                      "Exotic" : 50, "Marksmanship" : 60, "Two Weapon": 60,\
                      "Unarmed" : 70])
#define NECROMANCER_MAX (["Longsword" : 30, "Shortsword" : 35, "Axe" : 30 ,\
                      "Curved Blade" : 35, "Two Handed Sword" : 25,\
                      "Two Handed Axe" : 25, "Spear" : 45, "Knife" : 60,\
                      "Staff" : 50, "Flail" : 40, "Club" : 45,\
                      "Rapier" : 30, "Polearm" : 40,\
                      "Exotic" : 20, "Marksmanship" : 30, "Two Weapon": 20,\
                      "Unarmed" : 25])
#define MAGE_MAX    (["Longsword" : 30, "Shortsword" : 35, "Axe" : 30 ,\
                      "Curved Blade" : 35, "Two Handed Sword" : 20,\
                      "Two Handed Axe" : 25, "Spear" : 40, "Knife" : 55,\
                      "Staff" : 60, "Flail" : 40, "Club" : 40,\
                      "Rapier" : 30, "Polearm" : 30,\
                      "Exotic" : 20, "Marksmanship" : 35, "Two Weapon": 20,\
                      "Unarmed" : 25])
#define SHIFTER_MAX  (["Longsword" : 40, "Shortsword" : 50, "Axe" : 70 ,\
                      "Curved Blade" : 55, "Two Handed Sword" : 40,\
                      "Two Handed Axe" : 60, "Spear" : 75, "Knife" : 75,\
                      "Staff" : 75, "Flail" : 50, "Club" : 80,\
                      "Rapier" : 40, "Polearm" : 40,\
                      "Exotic" : 40, "Marksmanship" : 75, "Two Weapon": 70,\
                      "Unarmed" : 90])
#define ARTIFICER_MAX (["Longsword" : 45, "Shortsword" : 45, "Axe" : 45 ,\
                      "Curved Blade" : 75, "Two Handed Sword" : 30,\
                      "Two Handed Axe" : 30, "Spear" : 45, "Knife" : 80,\
                      "Staff" : 55, "Flail" : 55, "Club" : 80,\
                      "Rapier" : 30, "Polearm" : 50,\
                      "Exotic" : 45, "Marksmanship" : 80, "Two Weapon": 20,\
                      "Unarmed" : 60])
#define MARINER_MAX (["Longsword" : 80, "Shortsword" : 80, "Axe" : 65 ,\
                      "Curved Blade" : 100, "Two Handed Sword" : 55,\
                      "Two Handed Axe" : 55, "Spear" : 100, "Knife" : 100,\
                      "Staff" : 60, "Flail" : 55, "Club" : 75,\
                      "Rapier": 60, "Polearm" : 55,\
                      "Exotic" : 50, "Marksmanship" : 90,  "Two Weapon": 20,\
                      "Unarmed" : 100])
#define PSION_MAX   (["Longsword" : 30, "Shortsword" : 30, "Axe" : 30 ,\
                      "Curved Blade" : 30, "Two Handed Sword" : 20,\
                      "Two Handed Axe" : 20, "Spear" : 30, "Knife" : 55,\
                      "Staff" : 60, "Flail" : 30, "Club" : 30,\
                      "Rapier" : 30, "Polearm" : 30,\
                      "Exotic" : 20, "Marksmanship" : 30,  "Two Weapon": 20,\
                      "Unarmed" : 40])

#define JAOCHI_MAX (["Longsword" : 30, "Shortsword" : 40, "Axe" : 40 ,\
                      "Curved Blade" : 30, "Two Handed Sword" : 20,\
                      "Two Handed Axe" : 20, "Spear" : 40, "Knife" : 70,\
                      "Staff" : 70, "Flail" : 20, "Club" : 70,\
                      "Rapier" : 30, "Polearm" : 25,\
                      "Exotic" : 20, "Marksmanship" : 50, "Two Weapon": 20,\
                      "Unarmed" : 100])

#define SOULBINDER_MAX (["Longsword" : 20, "Shortsword" : 55, "Axe" : 40 ,\
                      "Curved Blade" : 40, "Two Handed Sword" : 20,\
                      "Two Handed Axe" : 20, "Spear" : 20, "Knife" : 60,\
                      "Staff" : 25, "Flail" : 30, "Club" : 30,\
                      "Rapier" : 45, "Polearm" : 20,\
                      "Exotic" : 20, "Marksmanship" : 15, "Two Weapon": 20,\
                      "Unarmed" : 45])

#define MAX_LEARNING ([\
  FIGHTER : FIGHTER_MAX,\
  RANGER : RANGER_MAX,\
  PALADIN : PALADIN_MAX,\
  COMMUNICATOR: ADVENTURER_MAX,\
  ADVENTURER : ADVENTURER_MAX,\
  SHIFTER : SHIFTER_MAX,\
  ROGUE : ROGUE_MAX,\
  CLERIC : CLERIC_MAX,\
  NECROMANCER : NECROMANCER_MAX,\
  ARTIFICER : ARTIFICER_MAX,\
  MAGE : MAGE_MAX,\
  MARINER : MARINER_MAX,\
  MINER : ADVENTURER_MAX,\
  PSION : PSION_MAX,\
  JAOCHI : JAOCHI_MAX,\
  SOULBINDER: SOULBINDER_MAX,\
])

#endif