From d0e84fe3267ff2b3dbeb94c3df86885467c861f6 Mon Sep 17 00:00:00 2001
From: anima
Date: Mon, 16 May 2022 18:38:54 +0200
Subject: [PATCH] add ffxiv classes wrapper
---
scripts/lib/ffxivclasses.py | 400 ++++++++++++++++++++++++++++++++++++
1 file changed, 400 insertions(+)
create mode 100644 scripts/lib/ffxivclasses.py
diff --git a/scripts/lib/ffxivclasses.py b/scripts/lib/ffxivclasses.py
new file mode 100644
index 0000000..ad25326
--- /dev/null
+++ b/scripts/lib/ffxivclasses.py
@@ -0,0 +1,400 @@
+
+####################################################################################################
+# Main Class #
+####################################################################################################
+class FFXIVCLASS:
+ __author__ = 'Anima'
+ __version__ = '0.0.1'
+ CLASSROLE : str = None
+ CLASSNAME : str = None
+
+ def __init__(self, language: str = 'D') -> None:
+ self.LANG : str = language
+ self.MAXLVL : int = 90
+ self.ROLE : dict = self.CLASSROLE[self.LANG]
+ self.NAME : dict = self.CLASSNAME[self.LANG]
+
+####################################################################################################
+# Tanks #
+####################################################################################################
+class Tank(FFXIVCLASS):
+ __version__ = '0.0.1'
+ CLASSROLE : dict = {'E': 'Tank', 'D': 'Verteidiger'}
+
+ def __init__(self, language: str = 'D') -> None:
+ super().__init__(language)
+
+class DarkKnight(Tank):
+ __version__ = '0.0.1'
+ CLASSNAME : dict = {'E': 'Dark Knight', 'D': 'Dunkelritter'}
+ CLASSHORT : dict = {'E': 'DRK', 'D': 'DKR'}
+ FFXIVAPIID : int = 32
+
+ def __init__(self,level: int = 30, language: str = 'D') -> None:
+ super().__init__(language)
+ self.LEVEL : int = level
+
+class Gunbreaker(Tank):
+ __version__ = '0.0.1'
+ CLASSNAME : dict = {'E': 'Gunbreaker', 'D': 'Revolverklinge'}
+ CLASSHORT : dict = {'E': 'GNB', 'D': 'REV'}
+ FFXIVAPIID : int = 37
+
+ def __init__(self,level: int = 60, language: str = 'D') -> None:
+ super().__init__(language)
+ self.LEVEL : int = level
+
+class Paladin(Tank):
+ __version__ = '0.0.1'
+ CLASSNAME : dict = {'E': 'Paladin', 'D': 'Paladin'}
+ CLASSHORT : dict = {'E': 'PLD', 'D': 'PLD'}
+ FFXIVAPIID : int = 19
+
+ def __init__(self,level: int = 0, language: str = 'D') -> None:
+ super().__init__(language)
+ self.LEVEL : int = level
+
+class Warrior(Tank):
+ __version__ = '0.0.1'
+ CLASSNAME : dict = {'E': 'Warrior', 'D': 'Krieger'}
+ CLASSHORT : dict = {'E': 'WAR', 'D': 'KRG'}
+ FFXIVAPIID : int = 21
+
+ def __init__(self,level: int = 0, language: str = 'D') -> None:
+ super().__init__(language)
+ self.LEVEL : int = level
+
+####################################################################################################
+# Healers #
+####################################################################################################
+class Heal(FFXIVCLASS):
+ __version__ = '0.0.1'
+ CLASSROLE : dict = {'E': 'Healer', 'D': 'Heiler'}
+
+ def __init__(self, language: str = 'D') -> None:
+ super().__init__(language)
+
+class Astrologian(Heal):
+ __version__ = '0.0.1'
+ CLASSNAME : dict = {'E': 'Astrologian', 'D': 'Astrologe'}
+ CLASSHORT : dict = {'E': 'AST', 'D': 'AST'}
+ FFXIVAPIID : int = 33
+
+ def __init__(self,level: int = 30, language: str = 'D') -> None:
+ super().__init__(language)
+ self.LEVEL : int = level
+
+class Sage(Heal):
+ __version__ = '0.0.1'
+ CLASSNAME : dict = {'E': 'Sage', 'D': 'Weiser'}
+ CLASSHORT : dict = {'E': 'SGE', 'D': 'WEI'}
+ FFXIVAPIID : int = 40
+
+ def __init__(self,level: int = 70, language: str = 'D') -> None:
+ super().__init__(language)
+ self.LEVEL : int = level
+
+class Sholar(Heal):
+ __version__ = '0.0.1'
+ CLASSNAME : dict = {'E': 'Sholar', 'D': 'Gelehrte'}
+ CLASSHORT : dict = {'E': 'SCH', 'D': 'GLT'}
+ FFXIVAPIID : int = 28
+
+ def __init__(self,level: int = 70, language: str = 'D') -> None:
+ super().__init__(language)
+ self.LEVEL : int = level
+
+class WhiteMage(Heal):
+ __version__ = '0.0.1'
+ CLASSNAME : dict = {'E': 'White Mage', 'D': 'Weißmagier'}
+ CLASSHORT : dict = {'E': 'WHM', 'D': 'WMA'}
+ FFXIVAPIID : int = 24
+
+ def __init__(self,level: int = 0, language: str = 'D') -> None:
+ super().__init__(language)
+ self.LEVEL : int = level
+
+####################################################################################################
+# Damage Dealer #
+####################################################################################################
+#--------------------------------------------> Meeles <--------------------------------------------#
+class Melee(FFXIVCLASS):
+ __version__ = '0.0.1'
+ CLASSROLE : dict = {'E': 'Melee', 'D': 'Nahkämpfer'}
+
+ def __init__(self, language: str = 'D') -> None:
+ super().__init__(language)
+
+class Dragoon(Melee):
+ __version__ = '0.0.1'
+ CLASSNAME : dict = {'E': 'Dragoon', 'D': 'Dragoon'}
+ CLASSHORT : dict = {'E': 'DRG', 'D': 'DRG'}
+ FFXIVAPIID : int = 22
+
+ def __init__(self,level: int = 0, language: str = 'D') -> None:
+ super().__init__(language)
+ self.LEVEL : int = level
+
+class Monk(Melee):
+ __version__ = '0.0.1'
+ CLASSNAME : dict = {'E': 'Monk', 'D': 'Mönch'}
+ CLASSHORT : dict = {'E': 'MNK', 'D': 'MÖN'}
+ FFXIVAPIID : int = 20
+
+ def __init__(self,level: int = 0, language: str = 'D') -> None:
+ super().__init__(language)
+ self.LEVEL : int = level
+
+class Ninja(Melee):
+ __version__ = '0.0.1'
+ CLASSNAME : dict = {'E': 'Ninja', 'D': 'Ninja'}
+ CLASSHORT : dict = {'E': 'NIN', 'D': 'NIN'}
+ FFXIVAPIID : int = 30
+
+ def __init__(self,level: int = 0, language: str = 'D') -> None:
+ super().__init__(language)
+ self.LEVEL : int = level
+
+class Samurai(Melee):
+ __version__ = '0.0.1'
+ CLASSNAME : dict = {'E': 'Samurai', 'D': 'Samurai'}
+ CLASSHORT : dict = {'E': 'SAM', 'D': 'SAM'}
+ FFXIVAPIID : int = 34
+
+ def __init__(self,level: int = 50, language: str = 'D') -> None:
+ super().__init__(language)
+ self.LEVEL : int = level
+
+class Reaper(Melee):
+ __version__ = '0.0.1'
+ CLASSNAME : dict = {'E': 'Reaper', 'D': 'Schnitter'}
+ CLASSHORT : dict = {'E': 'RPR', 'D': 'SNT'}
+ FFXIVAPIID : int = 39
+
+ def __init__(self,level: int = 70, language: str = 'D') -> None:
+ super().__init__(language)
+ self.LEVEL : int = level
+
+#--------------------------------------------> Ranges <--------------------------------------------#
+class Range(FFXIVCLASS):
+ __version__ = '0.0.1'
+ CLASSROLE : dict = {'E': 'Range', 'D': 'Fernkämpfer'}
+
+ def __init__(self, language: str = 'D') -> None:
+ super().__init__(language)
+
+class Bard(Range):
+ __version__ = '0.0.1'
+ CLASSNAME : dict = {'E': 'Bard', 'D': 'Barde'}
+ CLASSHORT : dict = {'E': 'BRD', 'D': 'BRD'}
+ FFXIVAPIID : int = 23
+
+ def __init__(self,level: int = 0, language: str = 'D') -> None:
+ super().__init__(language)
+ self.LEVEL : int = level
+
+class Dancer(Range):
+ __version__ = '0.0.1'
+ CLASSNAME : dict = {'E': 'Dancer', 'D': 'Tänzer'}
+ CLASSHORT : dict = {'E': 'DCR', 'D': 'TÄN'}
+ FFXIVAPIID : int = 38
+
+ def __init__(self,level: int = 60, language: str = 'D') -> None:
+ super().__init__(language)
+ self.LEVEL : int = level
+
+class Machinist(Range):
+ __version__ = '0.0.1'
+ CLASSNAME : dict = {'E': 'Machinist', 'D': 'Maschinist'}
+ CLASSHORT : dict = {'E': 'MCH', 'D': 'MCH'}
+ FFXIVAPIID : int = 31
+
+ def __init__(self,level: int = 30, language: str = 'D') -> None:
+ super().__init__(language)
+ self.LEVEL : int = level
+
+#---------------------------------------------> Mage <---------------------------------------------#
+class Mage(FFXIVCLASS):
+ __version__ = '0.0.1'
+ CLASSROLE : dict = {'E': 'Mage', 'D': 'Magier'}
+
+ def __init__(self, language: str = 'D') -> None:
+ super().__init__(language)
+
+class BlackMage(Mage):
+ __version__ = '0.0.1'
+ CLASSNAME : dict = {'E': 'Black Mage', 'D': 'Schwarzmagier'}
+ CLASSHORT : dict = {'E': 'BMA', 'D': 'SMA'}
+ FFXIVAPIID : int = 25
+
+ def __init__(self,level: int = 70, language: str = 'D') -> None:
+ super().__init__(language)
+ self.LEVEL : int = level
+
+class RedMage(Mage):
+ __version__ = '0.0.1'
+ CLASSNAME : dict = {'E': 'Red Mage', 'D': 'Rotmagier'}
+ CLASSHORT : dict = {'E': 'RDM', 'D': 'RMA'}
+ FFXIVAPIID : int = 35
+
+ def __init__(self,level: int = 70, language: str = 'D') -> None:
+ super().__init__(language)
+ self.LEVEL : int = level
+
+class Summoner(Mage):
+ __version__ = '0.0.1'
+ CLASSNAME : dict = {'E': 'Summoner', 'D': 'Beschwörer'}
+ CLASSHORT : dict = {'E': 'SUM', 'D': 'BSW'}
+ FFXIVAPIID : int = 27
+
+ def __init__(self,level: int = 70, language: str = 'D') -> None:
+ super().__init__(language)
+ self.LEVEL : int = level
+
+class BlueMage(Mage):
+ __version__ = '0.0.1'
+ CLASSNAME : dict = {'E': 'Blue Mage', 'D': 'Blaumagier'}
+ CLASSHORT : dict = {'E': 'BLU', 'D': 'BLA'}
+ FFXIVAPIID : int = 36
+
+ def __init__(self,level: int = 70, language: str = 'D') -> None:
+ super().__init__(language)
+ self.MAXLVL : int = 70
+ self.LEVEL : int = level
+
+####################################################################################################
+# Collectors #
+####################################################################################################
+class Collector(FFXIVCLASS):
+ __version__ = '0.0.1'
+ CLASSROLE : dict = {'E': 'Collector', 'D': 'Sammler'}
+
+ def __init__(self, language: str = 'D') -> None:
+ super().__init__(language)
+
+class Botanist(Collector):
+ __version__ = '0.0.1'
+ CLASSNAME : dict = {'E': 'Botanis', 'D': 'Gärtner'}
+ CLASSHORT : dict = {'E': 'BTN', 'D': 'G?'}
+ FFXIVAPIID : int = 17
+
+ def __init__(self,level: int = 0, language: str = 'D') -> None:
+ super().__init__(language)
+ self.LEVEL : int = level
+
+class Fisher(Collector):
+ __version__ = '0.0.1'
+ CLASSNAME : dict = {'E': 'Fisher', 'D': 'Fischer'}
+ CLASSHORT : dict = {'E': 'FSH', 'D': 'FIS'}
+ FFXIVAPIID : int = 18
+
+ def __init__(self,level: int = 0, language: str = 'D') -> None:
+ super().__init__(language)
+ self.LEVEL : int = level
+
+class Miner(Collector):
+ __version__ = '0.0.1'
+ CLASSNAME : dict = {'E': 'Miner', 'D': 'Minenarbeiter'}
+ CLASSHORT : dict = {'E': 'MIN', 'D': 'MIN'}
+ FFXIVAPIID : int = 16
+
+ def __init__(self,level: int = 0, language: str = 'D') -> None:
+ super().__init__(language)
+ self.LEVEL : int = level
+
+####################################################################################################
+# Crafters #
+####################################################################################################
+class Crafter(FFXIVCLASS):
+ __version__ = '0.0.1'
+ CLASSROLE : dict = {'E': 'Carafter', 'D': 'Handwerker'}
+
+ def __init__(self, language: str = 'D') -> None:
+ super().__init__(language)
+
+class Alchemist(Crafter):
+ __version__ = '0.0.1'
+ CLASSNAME : dict = {'E': 'Alchemist', 'D': 'Alchimist'}
+ CLASSHORT : dict = {'E': 'ALC', 'D': 'ALC'}
+ FFXIVAPIID : int = 14
+
+ def __init__(self,level: int = 0, language: str = 'D') -> None:
+ super().__init__(language)
+ self.LEVEL : int = level
+
+class Armorer(Crafter):
+ __version__ = '0.0.1'
+ CLASSNAME : dict = {'E': 'Armorer', 'D': 'Plattner'}
+ CLASSHORT : dict = {'E': 'ARM', 'D': 'PLT'}
+ FFXIVAPIID : int = 10
+
+ def __init__(self,level: int = 0, language: str = 'D') -> None:
+ super().__init__(language)
+ self.LEVEL : int = level
+
+class Blacksmith(Crafter):
+ __version__ = '0.0.1'
+ CLASSNAME : dict = {'E': 'Blacksmith', 'D': 'Grobschmied'}
+ CLASSHORT : dict = {'E': 'BSM', 'D': 'GRS'}
+ FFXIVAPIID : int = 9
+
+ def __init__(self,level: int = 0, language: str = 'D') -> None:
+ super().__init__(language)
+ self.LEVEL : int = level
+
+class Carpenter(Crafter):
+ __version__ = '0.0.1'
+ CLASSNAME : dict = {'E': 'Carpenter', 'D': 'Zimmerer'}
+ CLASSHORT : dict = {'E': 'CRP', 'D': 'ZIM'}
+ FFXIVAPIID : int = 8
+
+ def __init__(self,level: int = 0, language: str = 'D') -> None:
+ super().__init__(language)
+ self.LEVEL : int = level
+
+class Culinarian(Crafter):
+ __version__ = '0.0.1'
+ CLASSNAME : dict = {'E': 'Culinarian', 'D': 'Gourmet'}
+ CLASSHORT : dict = {'E': 'CUL', 'D': 'GUR'}
+ FFXIVAPIID : int = 15
+
+ def __init__(self,level: int = 0, language: str = 'D') -> None:
+ super().__init__(language)
+ self.LEVEL : int = level
+
+class Goldsmith(Crafter):
+ __version__ = '0.0.1'
+ CLASSNAME : dict = {'E': 'Goldsmith', 'D': 'Goldschmied'}
+ CLASSHORT : dict = {'E': 'GSM', 'D': 'GSM'}
+ FFXIVAPIID : int = 11
+
+ def __init__(self,level: int = 0, language: str = 'D') -> None:
+ super().__init__(language)
+ self.LEVEL : int = level
+
+class Leatherworker(Crafter):
+ __version__ = '0.0.1'
+ CLASSNAME : dict = {'E': 'Leatherworker', 'D': 'Gerber'}
+ CLASSHORT : dict = {'E': 'LTW', 'D': 'GRB'}
+ FFXIVAPIID : int = 12
+
+ def __init__(self,level: int = 0, language: str = 'D') -> None:
+ super().__init__(language)
+ self.LEVEL : int = level
+
+class Weaver(Crafter):
+ __version__ = '0.0.1'
+ CLASSNAME : dict = {'E': 'Weaver', 'D': 'Weber'}
+ CLASSHORT : dict = {'E': 'WVR', 'D': 'WEB'}
+ FFXIVAPIID : int = 13
+
+ def __init__(self,level: int = 0, language: str = 'D') -> None:
+ super().__init__(language)
+ self.LEVEL : int = level
+
+if __name__ == '__main__':
+ anima = Sage(language='E')
+ print(anima.NAME)
+ print(anima.ROLE)
+ print(anima.LEVEL)
+ print(anima.CLASSROLE)
\ No newline at end of file