diff --git a/docs/api/classes/client_LodestoneClient.default.md b/docs/api/classes/client_LodestoneClient.default.md index 60c5d24..7308761 100644 --- a/docs/api/classes/client_LodestoneClient.default.md +++ b/docs/api/classes/client_LodestoneClient.default.md @@ -49,4 +49,4 @@ Client for interfacing with the Final Fantasy XIV Lodestone. #### Defined in -[client/LodestoneClient.ts:93](https://github.com/XIVStats/lodestone/blob/50b9024/src/client/LodestoneClient.ts#L93) +[client/LodestoneClient.ts:93](https://github.com/XIVStats/lodestone/blob/5fee752/src/client/LodestoneClient.ts#L93) diff --git a/docs/api/modules/locale.md b/docs/api/modules/locale.md index 56198c7..1295953 100644 --- a/docs/api/modules/locale.md +++ b/docs/api/modules/locale.md @@ -28,4 +28,4 @@ Square Enix labelling - eu=en, na=enUs, de=de, fr=fr, jp=ja #### Defined in -[locale/type/OptionalPerLanguageMapping.ts:37](https://github.com/XIVStats/lodestone/blob/50b9024/src/locale/type/OptionalPerLanguageMapping.ts#L37) +[locale/type/OptionalPerLanguageMapping.ts:37](https://github.com/XIVStats/lodestone/blob/5fee752/src/locale/type/OptionalPerLanguageMapping.ts#L37) diff --git a/src/entity/character/attribute/class/interface/IClass.ts b/src/entity/character/attribute/class/interface/IClass.ts index 9f7a976..8b7fe84 100644 --- a/src/entity/character/attribute/class/interface/IClass.ts +++ b/src/entity/character/attribute/class/interface/IClass.ts @@ -45,6 +45,12 @@ export default interface IClass { * Role of the class. */ role: Role + + /** + * Starting level + */ + startingLevel: number + /** * Image thumbnail that maps to this class. * diff --git a/src/entity/character/config/ClassConfig.ts b/src/entity/character/config/ClassConfig.ts index 69dea3b..eafcfdf 100644 --- a/src/entity/character/config/ClassConfig.ts +++ b/src/entity/character/config/ClassConfig.ts @@ -34,6 +34,7 @@ const ClassConfig: ClassInfoMap = { abbreviation: ClassAbbreviation.GLD, category: ClassCategory.DoW, role: Role.Tank, + startingLevel: 1, imageMapping: 'lds/h/1/3wQqdIwC4pyH2mWSQRYrw85nqU.png', iconMapping: 'lds/h/U/F5JzG9RPIKFSogtaKNBk455aYA.png', isOnlyJob: false, @@ -61,6 +62,7 @@ const ClassConfig: ClassInfoMap = { abbreviation: ClassAbbreviation.MRD, category: ClassCategory.DoW, role: Role.Tank, + startingLevel: 1, imageMapping: 'lds/h/f/_imrmFDN5Xsm-ARCpZiKi-2Aa0.png', iconMapping: 'lds/h/N/St9rjDJB3xNKGYg-vwooZ4j6CM.png', isOnlyJob: false, @@ -88,6 +90,7 @@ const ClassConfig: ClassInfoMap = { abbreviation: ClassAbbreviation.DRK, category: ClassCategory.DoW, role: Role.Tank, + startingLevel: 30, imageMapping: 'lds/h/C/TH-v29s5KK90ObD05fo5J7Onm4.png', iconMapping: 'lds/h/l/5CZEvDOMYMyVn2td9LZigsgw9s.png', isOnlyJob: true, @@ -103,6 +106,7 @@ const ClassConfig: ClassInfoMap = { abbreviation: ClassAbbreviation.GNB, category: ClassCategory.DoW, role: Role.Tank, + startingLevel: 60, imageMapping: 'lds/h/J/MzT8DqZtAQxrjWTCJTPJG4M8E8.png', iconMapping: 'lds/h/8/hg8ofSSOKzqng290No55trV4mI.png', isOnlyJob: true, @@ -119,6 +123,7 @@ const ClassConfig: ClassInfoMap = { abbreviation: ClassAbbreviation.CNJ, category: ClassCategory.DoM, role: Role.Healer, + startingLevel: 1, imageMapping: 'lds/h/y/GXIAHRFMlNyJUNf5zD40CnpP_M.png', iconMapping: 'lds/h/s/gl62VOTBJrm7D_BmAZITngUEM8.png', isOnlyJob: false, @@ -146,6 +151,7 @@ const ClassConfig: ClassInfoMap = { abbreviation: ClassAbbreviation.SCH, category: ClassCategory.DoM, role: Role.Healer, + startingLevel: 1, imageMapping: 'lds/h/N/r_T2Y5aKI0A8RytpzhdBBLtRdE.png', iconMapping: 'lds/h/7/WdFey0jyHn9Nnt1Qnm-J3yTg5s.png', isOnlyJob: true, @@ -161,6 +167,7 @@ const ClassConfig: ClassInfoMap = { abbreviation: ClassAbbreviation.AST, category: ClassCategory.DoM, role: Role.Healer, + startingLevel: 30, imageMapping: 'lds/h/3/umwvB9TpD5eWyIdhVuksPuV__k.png', iconMapping: 'lds/h/1/erCgjnMSiab4LiHpWxVc-tXAqk.png', isOnlyJob: true, @@ -176,6 +183,7 @@ const ClassConfig: ClassInfoMap = { abbreviation: ClassAbbreviation.SGE, category: ClassCategory.DoM, role: Role.Healer, + startingLevel: 70, imageMapping: 'lds/h/u/0blXNf6dtQ7j1039qlIpMf8M1E.png', iconMapping: 'lds/h/g/_oYApASVVReLLmsokuCJGkEpk0.png', isOnlyJob: true, @@ -192,6 +200,7 @@ const ClassConfig: ClassInfoMap = { abbreviation: ClassAbbreviation.PGL, category: ClassCategory.DoW, role: Role.MeleeDps, + startingLevel: 1, imageMapping: 'lds/h/9/kmphx3Uu-rhnFhqferPfKxAwSQ.png', iconMapping: 'lds/h/V/iW7IBKQ7oglB9jmbn6LwdZXkWw.png', isOnlyJob: false, @@ -219,6 +228,7 @@ const ClassConfig: ClassInfoMap = { abbreviation: ClassAbbreviation.LNC, category: ClassCategory.DoW, role: Role.MeleeDps, + startingLevel: 1, imageMapping: 'lds/h/R/yC5PNbFqbqxDn8OxiW4jYEYtuc.png', iconMapping: 'lds/h/k/tYTpoSwFLuGYGDJMff8GEFuDQs.png', isOnlyJob: false, @@ -249,6 +259,7 @@ const ClassConfig: ClassInfoMap = { imageMapping: 'lds/h/a/15b59KAx2p00OhZqMFZEmv2_14.png', iconMapping: 'lds/h/y/wdwVVcptybfgSruoh8R344y_GA.png', isOnlyJob: false, + startingLevel: 1, name: { de: 'Schurke', en: 'Rogue', @@ -273,6 +284,7 @@ const ClassConfig: ClassInfoMap = { abbreviation: ClassAbbreviation.SAM, category: ClassCategory.DoW, role: Role.MeleeDps, + startingLevel: 50, imageMapping: 'lds/h/T/gCoz6IP00aPoN2KTzGtwC4ayks.png', iconMapping: 'lds/h/m/KndG72XtCFwaq1I1iqwcmO_0zc.png', isOnlyJob: true, @@ -288,6 +300,7 @@ const ClassConfig: ClassInfoMap = { abbreviation: ClassAbbreviation.RPR, category: ClassCategory.DoW, role: Role.MeleeDps, + startingLevel: 70, imageMapping: 'lds/h/H/ZEiwU3soVZIobM2RZSG8LnhYEY.png', iconMapping: 'lds/h/7/cLlXUaeMPJDM2nBhIeM-uDmPzM.png', isOnlyJob: true, @@ -304,6 +317,7 @@ const ClassConfig: ClassInfoMap = { abbreviation: ClassAbbreviation.ARC, category: ClassCategory.DoW, role: Role.RangedDps, + startingLevel: 1, imageMapping: 'lds/h/C/96HpzsjDgZ7iXVOjApaTxvhJCI.png', iconMapping: 'lds/h/Q/ZpqEJWYHj9SvHGuV9cIyRNnIkk.png', isOnlyJob: false, @@ -331,6 +345,7 @@ const ClassConfig: ClassInfoMap = { abbreviation: ClassAbbreviation.MCH, category: ClassCategory.DoW, role: Role.RangedDps, + startingLevel: 30, imageMapping: 'lds/h/p/4x5SztlzZ1ZcsIrkSq5Rf_B_aU.png', iconMapping: 'lds/h/E/vmtbIlf6Uv8rVp2YFCWA25X0dc.png', isOnlyJob: true, @@ -346,6 +361,7 @@ const ClassConfig: ClassInfoMap = { abbreviation: ClassAbbreviation.DNC, category: ClassCategory.DoW, role: Role.RangedDps, + startingLevel: 60, imageMapping: 'lds/h/2/VyHSnYXdwvrayQYs94OQn5Sf5c.png', iconMapping: 'lds/h/t/HK0jQ1y7YV9qm30cxGOVev6Cck.png', isOnlyJob: true, @@ -362,6 +378,7 @@ const ClassConfig: ClassInfoMap = { abbreviation: ClassAbbreviation.THM, category: ClassCategory.DoM, role: Role.MagicDps, + startingLevel: 1, imageMapping: 'lds/h/V/Hjab7psI190gJL7Dwfv6lRN_IY.png', iconMapping: 'lds/h/4/IM3PoP6p06GqEyReygdhZNh7fU.png', isOnlyJob: false, @@ -389,6 +406,7 @@ const ClassConfig: ClassInfoMap = { abbreviation: ClassAbbreviation.ACN, category: ClassCategory.DoM, role: Role.MagicDps, + startingLevel: 1, imageMapping: 'lds/h/2/V4RyOObRXzrVRraLoPhMui_Atg.png', iconMapping: 'lds/h/e/VYP1LKTDpt8uJVvUT7OKrXNL9E.png', isOnlyJob: false, @@ -416,6 +434,7 @@ const ClassConfig: ClassInfoMap = { abbreviation: ClassAbbreviation.RDM, category: ClassCategory.DoM, role: Role.MagicDps, + startingLevel: 50, imageMapping: 'lds/h/E/eJnCfigMSBgTW0ejLcmWEuIA-4.png', iconMapping: 'lds/h/q/s3MlLUKmRAHy0pH57PnFStHmIw.png', isOnlyJob: true, @@ -431,6 +450,7 @@ const ClassConfig: ClassInfoMap = { abbreviation: ClassAbbreviation.BLU, category: ClassCategory.DoM, role: Role.LimitedJob, + startingLevel: 1, iconMapping: 'lds/h/p/jdV3RRKtWzgo226CC09vjen5sk.png', imageMapping: 'lds/h/0/SsnnfFXS_AKGbrcBnIEA0J_jUk.png', isOnlyJob: true, @@ -447,6 +467,7 @@ const ClassConfig: ClassInfoMap = { abbreviation: ClassAbbreviation.CRP, category: ClassCategory.DoH, role: Role.Crafter, + startingLevel: 1, imageMapping: 'lds/h/5/N2VxiOAdTSP3xhiRL9nFEnhcQE.png', iconMapping: 'lds/h/v/YCN6F-xiXf03Ts3pXoBihh2OBk.png', isOnlyJob: false, @@ -463,6 +484,7 @@ const ClassConfig: ClassInfoMap = { abbreviation: ClassAbbreviation.BSM, category: ClassCategory.DoH, role: Role.Crafter, + startingLevel: 1, imageMapping: 'lds/h/7/UEc4a-KNpTSobnn6KqoTxNsnQ0.png', iconMapping: 'lds/h/5/EEHVV5cIPkOZ6v5ALaoN5XSVRU.png', isOnlyJob: false, @@ -479,6 +501,7 @@ const ClassConfig: ClassInfoMap = { abbreviation: ClassAbbreviation.ARM, category: ClassCategory.DoH, role: Role.Crafter, + startingLevel: 1, imageMapping: 'lds/h/K/ya-2JbfyML4fSDOqCP6eYJDYT4.png', iconMapping: 'lds/h/G/Rq5wcK3IPEaAB8N-T9l6tBPxCY.png', isOnlyJob: false, @@ -495,6 +518,7 @@ const ClassConfig: ClassInfoMap = { abbreviation: ClassAbbreviation.GSM, category: ClassCategory.DoH, role: Role.Crafter, + startingLevel: 1, imageMapping: 'lds/h/S/ogx5wORnpqxPcWEMvzYRUXhzlM.png', iconMapping: 'lds/h/L/LbEjgw0cwO_2gQSmhta9z03pjM.png', isOnlyJob: false, @@ -511,6 +535,7 @@ const ClassConfig: ClassInfoMap = { abbreviation: ClassAbbreviation.LTW, category: ClassCategory.DoH, role: Role.Crafter, + startingLevel: 1, imageMapping: 'lds/h/6/rb9Aafw82RXv5ZTdTIVVj5S7m4.png', iconMapping: 'lds/h/b/ACAcQe3hWFxbWRVPqxKj_MzDiY.png', isOnlyJob: false, @@ -527,6 +552,7 @@ const ClassConfig: ClassInfoMap = { abbreviation: ClassAbbreviation.WVR, category: ClassCategory.DoH, role: Role.Crafter, + startingLevel: 1, imageMapping: 'lds/h/A/7qbgw7R9AvJP6y3fRDIC2otTPc.png', iconMapping: 'lds/h/X/E69jrsOMGFvFpCX87F5wqgT_Vo.png', isOnlyJob: false, @@ -543,6 +569,7 @@ const ClassConfig: ClassInfoMap = { abbreviation: ClassAbbreviation.ALC, category: ClassCategory.DoH, role: Role.Crafter, + startingLevel: 1, imageMapping: 'lds/h/N/w1G2kzT8vC3DS-XSPnUBxatlLY.png', iconMapping: 'lds/h/C/bBVQ9IFeXqjEdpuIxmKvSkqalE.png', isOnlyJob: false, @@ -559,6 +586,7 @@ const ClassConfig: ClassInfoMap = { abbreviation: ClassAbbreviation.CUL, category: ClassCategory.DoH, role: Role.Crafter, + startingLevel: 1, imageMapping: 'lds/h/-/2VMe_GbrSdCk5GpHs46PjH72CE.png', iconMapping: 'lds/h/m/1kMI2v_KEVgo30RFvdFCyySkFo.png', isOnlyJob: false, @@ -576,6 +604,7 @@ const ClassConfig: ClassInfoMap = { abbreviation: ClassAbbreviation.MIN, category: ClassCategory.DoL, role: Role.Gatherer, + startingLevel: 1, imageMapping: 'lds/h/a/7o10rO9pifyN7FMMXy4vY5_tD0.png', iconMapping: 'lds/h/A/aM2Dd6Vo4HW_UGasK7tLuZ6fu4.png', isOnlyJob: false, @@ -592,6 +621,7 @@ const ClassConfig: ClassInfoMap = { abbreviation: ClassAbbreviation.BTN, category: ClassCategory.DoL, role: Role.Gatherer, + startingLevel: 1, imageMapping: 'lds/h/R/OgQfc5hl2HYlfSRw4mGvvqyD10.png', iconMapping: 'lds/h/I/jGRnjIlwWridqM-mIPNew6bhHM.png', isOnlyJob: false, @@ -608,6 +638,7 @@ const ClassConfig: ClassInfoMap = { abbreviation: ClassAbbreviation.FSH, category: ClassCategory.DoL, role: Role.Gatherer, + startingLevel: 1, imageMapping: 'lds/h/P/HTVvsNHTtMlqOQpRd4aI8WjJgI.png', iconMapping: 'lds/h/x/B4Azydbn7Prubxt7OL9p1LZXZ0.png', isOnlyJob: false,