diff --git a/client/UIFramework/CCursorHandler.cpp b/client/UIFramework/CCursorHandler.cpp index 4d38172e3..563727557 100644 --- a/client/UIFramework/CCursorHandler.cpp +++ b/client/UIFramework/CCursorHandler.cpp @@ -23,6 +23,7 @@ void CCursorHandler::initCursor() xpos = ypos = 0; type = ECursor::DEFAULT; dndObject = nullptr; + currentCursor = nullptr; help = CSDL_Ext::newSurface(40,40); SDL_ShowCursor(SDL_DISABLE); diff --git a/config/heroes.json b/config/heroes.json index 101ff3d5c..b17a1369f 100644 --- a/config/heroes.json +++ b/config/heroes.json @@ -12,2266 +12,2266 @@ "female": false, "skill_set": [ - { "skill": 6, "level": 1 }, - { "skill": 1, "level": 1 } + { "skill" : "leadership", "level": "basic" }, + { "skill" : "archery", "level": "basic" } ], - "specialties": - [ - { "type":2, "val": 5, "subtype": 1, "info": 0 } - ] + "specialties": + [ + { "type":2, "val": 5, "subtype": 1, "info": 0 } + ] }, - { + { "id": 1, "class" : "knight", "female": true, - "skill_set": - [ - { "skill": 6, "level": 1 }, - { "skill": 1, "level": 1 } + "skill_set": + [ + { "skill" : "leadership", "level": "basic" }, + { "skill" : "archery", "level": "basic" } ], - "specialties": - [ - { "type":1, "val": 0, "subtype": 0, "info": 2 } - ] + "specialties": + [ + { "type":1, "val": 0, "subtype": 0, "info": 2 } + ] }, - { + { "id": 2, "class" : "knight", "female": false, - "skill_set": - [ - { "skill": 6, "level": 1 }, - { "skill": 23, "level": 1 } + "skill_set": + [ + { "skill" : "leadership", "level": "basic" }, + { "skill" : "armorer", "level": "basic" } ], - "specialties": - [ - { "type":1, "val": 0, "subtype": 0, "info": 4 } - ] + "specialties": + [ + { "type":1, "val": 0, "subtype": 0, "info": 4 } + ] }, - { + { "id": 3, "class" : "knight", "female": true, - "skill_set": - [ - { "skill": 6, "level": 1 }, - { "skill": 5, "level": 1 } + "skill_set": + [ + { "skill" : "leadership", "level": "basic" }, + { "skill" : "navigation", "level": "basic" } ], - "specialties": - [ - { "type":2, "val": 2, "subtype": 5, "info": 1 } - ] + "specialties": + [ + { "type":2, "val": 2, "subtype": 5, "info": 1 } + ] }, - { + { "id": 4, "class" : "knight", "female": false, - "skill_set": - [ - { "skill": 6, "level": 1 }, - { "skill": 13, "level": 1 } + "skill_set": + [ + { "skill" : "leadership", "level": "basic" }, + { "skill" : "estates", "level": "basic" } ], - "specialties": - [ - { "type":2, "val": 5, "subtype": 13, "info": 0 } - ] + "specialties": + [ + { "type":2, "val": 5, "subtype": 13, "info": 0 } + ] }, - { + { "id": 5, "class" : "knight", "female": true, - "skill_set": - [ - { "skill": 6, "level": 1 }, - { "skill": 22, "level": 1 } + "skill_set": + [ + { "skill" : "leadership", "level": "basic" }, + { "skill" : "offence", "level": "basic" } ], - "specialties": - [ - { "type":1, "val": 0, "subtype": 0, "info": 6 } - ] + "specialties": + [ + { "type":1, "val": 0, "subtype": 0, "info": 6 } + ] }, - { + { "id": 6, "class" : "knight", "female": false, - "skill_set": - [ - { "skill": 6, "level": 1 }, - { "skill": 20, "level": 1 } + "skill_set": + [ + { "skill" : "leadership", "level": "basic" }, + { "skill" : "artillery", "level": "basic" } ], - "specialties": - [ - { "type":1, "val": 0, "subtype": 0, "info": 146 } - ] + "specialties": + [ + { "type":1, "val": 0, "subtype": 0, "info": 146 } + ] }, - { + { "id": 7, "class" : "knight", "female": true, - "skill_set": - [ - { "skill": 6, "level": 1 }, - { "skill": 19, "level": 1 } + "skill_set": + [ + { "skill" : "leadership", "level": "basic" }, + { "skill" : "tactics", "level": "basic" } ], - "specialties": - [ - { "type":1, "val": 0, "subtype": 0, "info": 10 } - ] + "specialties": + [ + { "type":1, "val": 0, "subtype": 0, "info": 10 } + ] }, - { + { "id": 8, "class" : "cleric", "female": false, "spell": 46, - "skill_set": - [ - { "skill": 7, "level": 1 }, - { "skill": 27, "level": 1 } + "skill_set": + [ + { "skill" : "wisdom", "level": "basic" }, + { "skill" : "firstAid", "level": "basic" } ], - "specialties": - [ - { "type":2, "val": 5, "subtype": 27, "info": 0 } - ] + "specialties": + [ + { "type":2, "val": 5, "subtype": 27, "info": 0 } + ] }, - { + { "id": 9, "class" : "cleric", "female": true, "spell": 41, - "skill_set": - [ - { "skill": 7, "level": 1 }, - { "skill": 4, "level": 1 } + "skill_set": + [ + { "skill" : "wisdom", "level": "basic" }, + { "skill" : "diplomacy", "level": "basic" } ], - "specialties": - [ - { "type":6, "val": 3, "subtype": 41, "info": 0 } - ] + "specialties": + [ + { "type":6, "val": 3, "subtype": 41, "info": 0 } + ] }, - { + { "id": 10, "class" : "cleric", "female": false, "spell": 45, - "skill_set": - [ - { "skill": 7, "level": 1 }, - { "skill": 13, "level": 1 } + "skill_set": + [ + { "skill" : "wisdom", "level": "basic" }, + { "skill" : "estates", "level": "basic" } ], - "specialties": - [ - { "type":8, "val": 0, "subtype": 45, "info": 0 } - ] + "specialties": + [ + { "type":8, "val": 0, "subtype": 45, "info": 0 } + ] }, - { + { "id": 11, "class" : "cleric", "female": true, "spell": 20, - "skill_set": - [ - { "skill": 7, "level": 2 } + "skill_set": + [ + { "skill" : "wisdom", "level": "advanced" } ], - "specialties": - [ - { "type":3, "val": 3, "subtype": 20, "info": 0 } - ] + "specialties": + [ + { "type":3, "val": 3, "subtype": 20, "info": 0 } + ] }, - { + { "id": 12, "class" : "cleric", "female": false, "spell": 42, - "skill_set": - [ - { "skill": 7, "level": 1 }, - { "skill": 8, "level": 1 } + "skill_set": + [ + { "skill" : "wisdom", "level": "basic" }, + { "skill" : "mysticism", "level": "basic" } ], - "specialties": - [ - { "type":1, "val": 0, "subtype": 0, "info": 8 } - ] + "specialties": + [ + { "type":1, "val": 0, "subtype": 0, "info": 8 } + ] }, - { + { "id": 13, "class" : "cleric", "female": true, "spell": 35, - "skill_set": - [ - { "skill": 7, "level": 1 }, - { "skill": 11, "level": 1 } + "skill_set": + [ + { "skill" : "wisdom", "level": "basic" }, + { "skill" : "eagleEye", "level": "basic" } ], - "specialties": - [ - { "type":2, "val": 5, "subtype": 11, "info": 0 } - ] + "specialties": + [ + { "type":2, "val": 5, "subtype": 11, "info": 0 } + ] }, - { + { "id": 14, "class" : "cleric", "spell": 48, "female": false, - "skill_set": - [ - { "skill": 7, "level": 1 }, - { "skill": 21, "level": 1 } + "skill_set": + [ + { "skill" : "wisdom", "level": "basic" }, + { "skill" : "learning", "level": "basic" } ], - "specialties": - [ - { "type":8, "val": 0, "subtype": 48, "info": 0 } - ] + "specialties": + [ + { "type":8, "val": 0, "subtype": 48, "info": 0 } + ] }, - { + { "id": 15, "class" : "cleric", "female": true, "spell": 37, - "skill_set": - [ - { "skill": 7, "level": 1 }, - { "skill": 24, "level": 1 } + "skill_set": + [ + { "skill" : "wisdom", "level": "basic" }, + { "skill" : "intelligence", "level": "basic" } ], - "specialties": - [ - { "type":10, "val": 350, "subtype": 6, "info": 0 } - ] + "specialties": + [ + { "type":10, "val": 350, "subtype": 6, "info": 0 } + ] }, - { + { "id": 16, "class" : "ranger", "female": true, - "skill_set": - [ - { "skill": 6, "level": 1 }, - { "skill": 23, "level": 1 } + "skill_set": + [ + { "skill" : "leadership", "level": "basic" }, + { "skill" : "armorer", "level": "basic" } ], - "specialties": - [ - { "type":2, "val": 5, "subtype": 23, "info": 0 } - ] + "specialties": + [ + { "type":2, "val": 5, "subtype": 23, "info": 0 } + ] }, - { + { "id": 17, "class" : "ranger", "female": false, - "skill_set": - [ - { "skill": 9, "level": 1 }, - { "skill": 26, "level": 1 } + "skill_set": + [ + { "skill" : "luck", "level": "basic" }, + { "skill" : "resistance", "level": "basic" } ], - "specialties": - [ - { "type":1, "val": 0, "subtype": 0, "info": 16 } - ] + "specialties": + [ + { "type":1, "val": 0, "subtype": 0, "info": 16 } + ] }, - { + { "id": 18, "class" : "ranger", "female": true, - "skill_set": - [ - { "skill": 1, "level": 2 } + "skill_set": + [ + { "skill" : "archery", "level": "advanced" } ], - "specialties": - [ - { "type":10, "val": 350, "subtype": 6, "info": 0 } - ] + "specialties": + [ + { "type":10, "val": 350, "subtype": 6, "info": 0 } + ] }, - { + { "id": 19, "class" : "ranger", "female": false, - "skill_set": - [ - { "skill": 4, "level": 1 }, - { "skill": 6, "level": 1 } + "skill_set": + [ + { "skill" : "diplomacy", "level": "basic" }, + { "skill" : "leadership", "level": "basic" } ], - "specialties": - [ - { "type":1, "val": 0, "subtype": 0, "info": 22 } - ] + "specialties": + [ + { "type":1, "val": 0, "subtype": 0, "info": 22 } + ] }, - { + { "id": 20, "class" : "ranger", "female": false, - "skill_set": - [ - { "skill": 26, "level": 2 } + "skill_set": + [ + { "skill" : "resistance", "level": "advanced" } ], - "specialties": - [ - { "type":2, "val": 5, "subtype": 26, "info": 0 } - ] + "specialties": + [ + { "type":2, "val": 5, "subtype": 26, "info": 0 } + ] }, - { + { "id": 21, "class" : "ranger", "female": false, - "skill_set": - [ - { "skill": 1, "level": 1 }, - { "skill": 22, "level": 1 } + "skill_set": + [ + { "skill" : "archery", "level": "basic" }, + { "skill" : "offence", "level": "basic" } ], - "specialties": - [ - { "type":1, "val": 0, "subtype": 0, "info": 18 } - ] + "specialties": + [ + { "type":1, "val": 0, "subtype": 0, "info": 18 } + ] }, - { + { "id": 22, "class" : "ranger", "female": false, - "skill_set": - [ - { "skill": 0, "level": 1 }, - { "skill": 26, "level": 1 } + "skill_set": + [ + { "skill" : "pathfinding", "level": "basic" }, + { "skill" : "resistance", "level": "basic" } ], - "specialties": - [ - { "type":1, "val": 0, "subtype": 0, "info": 24 } - ] + "specialties": + [ + { "type":1, "val": 0, "subtype": 0, "info": 24 } + ] }, - { + { "id": 23, "class" : "ranger", "female": true, - "skill_set": - [ - { "skill": 1, "level": 1 }, - { "skill": 2, "level": 1 } + "skill_set": + [ + { "skill" : "archery", "level": "basic" }, + { "skill" : "logistics", "level": "basic" } ], - "specialties": - [ - { "type":2, "val": 5, "subtype": 2, "info": 0 } - ] + "specialties": + [ + { "type":2, "val": 5, "subtype": 2, "info": 0 } + ] }, - { + { "id": 24, "class" : "druid", "spell": 55, "female": false, - "skill_set": - [ - { "skill": 7, "level": 1 }, - { "skill": 18, "level": 1 } + "skill_set": + [ + { "skill" : "wisdom", "level": "basic" }, + { "skill" : "scholar", "level": "basic" } ], - "specialties": - [ - { "type":8, "val": 0, "subtype": 55, "info": 1 } - ] + "specialties": + [ + { "type":8, "val": 0, "subtype": 55, "info": 1 } + ] }, - { + { "id": 25, "class" : "druid", "female": false, "spell": 37, - "skill_set": - [ - { "skill": 7, "level": 2 }, - { "skill": 10, "level": 1 } + "skill_set": + [ + { "skill" : "wisdom", "level": "advanced" }, + { "skill" : "ballistics", "level": "basic" } ], - "specialties": - [ - { "type":3, "val": 3, "subtype": 37, "info": 0 } - ] + "specialties": + [ + { "type":3, "val": 3, "subtype": 37, "info": 0 } + ] }, - { + { "id": 26, "class" : "druid", "female": false, "spell": 42, - "skill_set": - [ - { "skill": 7, "level": 1 }, - { "skill": 24, "level": 1 } + "skill_set": + [ + { "skill" : "wisdom", "level": "basic" }, + { "skill" : "intelligence", "level": "basic" } ], - "specialties": - [ - { "type":2, "val": 5, "subtype": 24, "info": 0 } - ] + "specialties": + [ + { "type":2, "val": 5, "subtype": 24, "info": 0 } + ] }, - { + { "id": 27, "class" : "druid", "female": true, "spell": 0, - "skill_set": - [ - { "skill": 7, "level": 1 }, - { "skill": 27, "level": 1 } + "skill_set": + [ + { "skill" : "wisdom", "level": "basic" }, + { "skill" : "firstAid", "level": "basic" } ], - "specialties": - [ - { "type":2, "val": 5, "subtype": 27, "info": 0 } - ] + "specialties": + [ + { "type":2, "val": 5, "subtype": 27, "info": 0 } + ] }, - { + { "id": 28, "class" : "druid", "female": false, "spell": 15, - "skill_set": - [ - { "skill": 7, "level": 1 }, - { "skill": 11, "level": 1 } + "skill_set": + [ + { "skill" : "wisdom", "level": "basic" }, + { "skill" : "eagleEye", "level": "basic" } ], - "specialties": - [ - { "type":2, "val": 5, "subtype": 11, "info": 0 } - ] + "specialties": + [ + { "type":2, "val": 5, "subtype": 11, "info": 0 } + ] }, - { + { "id": 29, "class" : "druid", "spell": 51, "female": true, - "skill_set": - [ - { "skill": 7, "level": 1 }, - { "skill": 9, "level": 1 } + "skill_set": + [ + { "skill" : "wisdom", "level": "basic" }, + { "skill" : "luck", "level": "basic" } ], - "specialties": - [ - { "type":7, "val": 0, "subtype": 51, "info": 0 } - ] + "specialties": + [ + { "type":7, "val": 0, "subtype": 51, "info": 0 } + ] }, - { + { "id": 30, "class" : "druid", "female": false, "spell": 16, - "skill_set": - [ - { "skill": 7, "level": 1 }, - { "skill": 25, "level": 1 } + "skill_set": + [ + { "skill" : "wisdom", "level": "basic" }, + { "skill" : "sorcery", "level": "basic" } ], - "specialties": - [ - { "type":3, "val": 3, "subtype": 16, "info": 0 } - ] + "specialties": + [ + { "type":3, "val": 3, "subtype": 16, "info": 0 } + ] }, - { + { "id": 31, "class" : "druid", "female": false, "spell": 30, - "skill_set": - [ - { "skill": 7, "level": 1 }, - { "skill": 3, "level": 1 } + "skill_set": + [ + { "skill" : "wisdom", "level": "basic" }, + { "skill" : "scouting", "level": "basic" } ], - "specialties": - [ - { "type":1, "val": 0, "subtype": 0, "info": 20 } - ] + "specialties": + [ + { "type":1, "val": 0, "subtype": 0, "info": 20 } + ] }, - { + { "id": 32, "class" : "alchemist", "female": false, "spell": 27, - "skill_set": - [ - { "skill": 3, "level": 1 }, - { "skill": 8, "level": 1 } + "skill_set": + [ + { "skill" : "scouting", "level": "basic" }, + { "skill" : "mysticism", "level": "basic" } ], - "specialties": - [ - { "type":1, "val": 0, "subtype": 0, "info": 30 } - ] + "specialties": + [ + { "type":1, "val": 0, "subtype": 0, "info": 30 } + ] }, - { + { "id": 33, "class" : "alchemist", "female": false, "spell": 15, - "skill_set": - [ - { "skill": 18, "level": 2 } + "skill_set": + [ + { "skill" : "scholar", "level": "advanced" } ], - "specialties": - [ - { "type":1, "val": 0, "subtype": 0, "info": 36 } - ] + "specialties": + [ + { "type":1, "val": 0, "subtype": 0, "info": 36 } + ] }, - { + { "id": 34, "class" : "alchemist", "spell": 53, "female": true, - "skill_set": - [ - { "skill": 8, "level": 1 }, - { "skill": 25, "level": 1 } + "skill_set": + [ + { "skill" : "mysticism", "level": "basic" }, + { "skill" : "sorcery", "level": "basic" } ], - "specialties": - [ - { "type":1, "val": 0, "subtype": 0, "info": 32 } - ] + "specialties": + [ + { "type":1, "val": 0, "subtype": 0, "info": 32 } + ] }, - { + { "id": 35, "class" : "alchemist", "female": true, "spell": 27, - "skill_set": - [ - { "skill": 18, "level": 1 }, - { "skill": 23, "level": 1 } + "skill_set": + [ + { "skill" : "scholar", "level": "basic" }, + { "skill" : "armorer", "level": "basic" } ], - "specialties": - [ - { "type":2, "val": 5, "subtype": 23, "info": 0 } - ] + "specialties": + [ + { "type":2, "val": 5, "subtype": 23, "info": 0 } + ] }, - { + { "id": 36, "class" : "alchemist", "female": false, "spell": 15, - "skill_set": - [ - { "skill": 8, "level": 1 }, - { "skill": 19, "level": 1 } + "skill_set": + [ + { "skill" : "mysticism", "level": "basic" }, + { "skill" : "tactics", "level": "basic" } ], - "specialties": - [ - { "type":1, "val": 0, "subtype": 0, "info": 146 } - ] + "specialties": + [ + { "type":1, "val": 0, "subtype": 0, "info": 146 } + ] }, - { + { "id": 37, "class" : "alchemist", "female": false, "spell": 53, - "skill_set": - [ - { "skill": 18, "level": 1 }, - { "skill": 26, "level": 1 } + "skill_set": + [ + { "skill" : "scholar", "level": "basic" }, + { "skill" : "resistance", "level": "basic" } ], - "specialties": - [ - { "type":1, "val": 0, "subtype": 0, "info": 38 } - ] + "specialties": + [ + { "type":1, "val": 0, "subtype": 0, "info": 38 } + ] }, - { + { "id": 38, "class" : "alchemist", "female": true, "spell": 15, - "skill_set": - [ - { "skill": 8, "level": 1 }, - { "skill": 22, "level": 1 } + "skill_set": + [ + { "skill" : "mysticism", "level": "basic" }, + { "skill" : "offence", "level": "basic" } ], - "specialties": - [ - { "type":10, "val": 1, "subtype": 1, "info": 0 } - ] + "specialties": + [ + { "type":10, "val": 1, "subtype": 1, "info": 0 } + ] }, - { + { "id": 39, "class" : "alchemist", "spell": 15, "female": true, - "skill_set": - [ - { "skill": 18, "level": 1 }, - { "skill": 24, "level": 1 } + "skill_set": + [ + { "skill" : "scholar", "level": "basic" }, + { "skill" : "intelligence", "level": "basic" } ], - "specialties": - [ - { "type":1, "val": 0, "subtype": 0, "info": 36 } - ] + "specialties": + [ + { "type":1, "val": 0, "subtype": 0, "info": 36 } + ] }, - { + { "id": 40, "class" : "wizard", "female": false, "spell": 60, - "skill_set": - [ - { "skill": 7, "level": 2 } + "skill_set": + [ + { "skill" : "wisdom", "level": "advanced" } ], - "specialties": - [ - { "type":3, "val": 3, "subtype": 60, "info": 0 } - ] + "specialties": + [ + { "type":3, "val": 3, "subtype": 60, "info": 0 } + ] }, - { + { "id": 41, "class" : "wizard", "female": false, "spell": 46, - "skill_set": - [ - { "skill": 7, "level": 1 }, - { "skill": 8, "level": 1 } + "skill_set": + [ + { "skill" : "wisdom", "level": "basic" }, + { "skill" : "mysticism", "level": "basic" } ], - "specialties": - [ - { "type":2, "val": 5, "subtype": 8, "info": 1 } - ] + "specialties": + [ + { "type":2, "val": 5, "subtype": 8, "info": 1 } + ] }, - { + { "id": 42, "class" : "wizard", "female": true, "spell": 35, - "skill_set": - [ - { "skill": 7, "level": 1 }, - { "skill": 11, "level": 1 } + "skill_set": + [ + { "skill" : "wisdom", "level": "basic" }, + { "skill" : "eagleEye", "level": "basic" } ], - "specialties": - [ - { "type":2, "val": 5, "subtype": 11, "info": 0 } - ] + "specialties": + [ + { "type":2, "val": 5, "subtype": 11, "info": 0 } + ] }, - { + { "id": 43, "class" : "wizard", "female": true, "spell": 51, - "skill_set": - [ - { "skill": 7, "level": 1 }, - { "skill": 24, "level": 1 } + "skill_set": + [ + { "skill" : "wisdom", "level": "basic" }, + { "skill" : "intelligence", "level": "basic" } ], - "specialties": - [ - { "type":7, "val": 0, "subtype": 51, "info": 0 } - ] + "specialties": + [ + { "type":7, "val": 0, "subtype": 51, "info": 0 } + ] }, - { + { "id": 44, "class" : "wizard", "spell": 27, "female": false, - "skill_set": - [ - { "skill": 7, "level": 1 }, - { "skill": 10, "level": 1 } + "skill_set": + [ + { "skill" : "wisdom", "level": "basic" }, + { "skill" : "ballistics", "level": "basic" } ], - "specialties": - [ - { "type":1, "val": 0, "subtype": 0, "info": 34 } - ] + "specialties": + [ + { "type":1, "val": 0, "subtype": 0, "info": 34 } + ] }, - { + { "id": 45, "class" : "wizard", "female": false, "spell": 19, - "skill_set": - [ - { "skill": 7, "level": 1 }, - { "skill": 25, "level": 1 } + "skill_set": + [ + { "skill" : "wisdom", "level": "basic" }, + { "skill" : "sorcery", "level": "basic" } ], - "specialties": - [ - { "type":3, "val": 3, "subtype": 19, "info": 0 } - ] + "specialties": + [ + { "type":3, "val": 3, "subtype": 19, "info": 0 } + ] }, - { + { "id": 46, "class" : "wizard", "female": true, "spell": 53, - "skill_set": - [ - { "skill": 7, "level": 1 }, - { "skill": 4, "level": 1 } + "skill_set": + [ + { "skill" : "wisdom", "level": "basic" }, + { "skill" : "diplomacy", "level": "basic" } ], - "specialties": - [ - { "type":8, "val": 0, "subtype": 53, "info": 0 } - ] + "specialties": + [ + { "type":8, "val": 0, "subtype": 53, "info": 0 } + ] }, - { + { "id": 47, "class" : "wizard", "female": true, "spell": 42, - "skill_set": - [ - { "skill": 7, "level": 1 }, - { "skill": 18, "level": 1 } + "skill_set": + [ + { "skill" : "wisdom", "level": "basic" }, + { "skill" : "scholar", "level": "basic" } ], - "specialties": - [ - { "type":10, "val": 350, "subtype": 6, "info": 0 } - ] + "specialties": + [ + { "type":10, "val": 350, "subtype": 6, "info": 0 } + ] }, - { + { "id": 48, "class" : "demoniac", "female": true, - "skill_set": - [ - { "skill": 3, "level": 2 } + "skill_set": + [ + { "skill" : "scouting", "level": "advanced" } ], - "specialties": - [ - { "type":1, "val": 0, "subtype": 0, "info": 46 } - ] + "specialties": + [ + { "type":1, "val": 0, "subtype": 0, "info": 46 } + ] }, - { + { "id": 49, "class" : "demoniac", "female": false, - "skill_set": - [ - { "skill": 7, "level": 1 }, - { "skill": 18, "level": 1 } + "skill_set": + [ + { "skill" : "wisdom", "level": "basic" }, + { "skill" : "scholar", "level": "basic" } ], - "specialties": - [ - { "type":1, "val": 0, "subtype": 0, "info": 52 } - ] + "specialties": + [ + { "type":1, "val": 0, "subtype": 0, "info": 52 } + ] }, - { + { "id": 50, "class" : "demoniac", "female": true, - "skill_set": - [ - { "skill": 23, "level": 2 } + "skill_set": + [ + { "skill" : "armorer", "level": "advanced" } ], - "specialties": - [ - { "type":1, "val": 0, "subtype": 0, "info": 48 } - ] + "specialties": + [ + { "type":1, "val": 0, "subtype": 0, "info": 48 } + ] }, - { + { "id": 51, "class" : "demoniac", "female": false, - "skill_set": - [ - { "skill": 19, "level": 1 }, - { "skill": 26, "level": 1 } + "skill_set": + [ + { "skill" : "tactics", "level": "basic" }, + { "skill" : "resistance", "level": "basic" } ], - "specialties": - [ - { "type":1, "val": 0, "subtype": 0, "info": 42 } - ] + "specialties": + [ + { "type":1, "val": 0, "subtype": 0, "info": 42 } + ] }, - { + { "id": 52, "class" : "demoniac", "female": true, - "skill_set": - [ - { "skill": 18, "level": 1 }, - { "skill": 22, "level": 1 } + "skill_set": + [ + { "skill" : "scholar", "level": "basic" }, + { "skill" : "offence", "level": "basic" } ], - "specialties": - [ - { "type":10, "val": 350, "subtype": 6, "info": 0 } - ] + "specialties": + [ + { "type":10, "val": 350, "subtype": 6, "info": 0 } + ] }, - { + { "id": 53, "class" : "demoniac", "female": false, - "skill_set": - [ - { "skill": 1, "level": 1 }, - { "skill": 3, "level": 1 } + "skill_set": + [ + { "skill" : "archery", "level": "basic" }, + { "skill" : "scouting", "level": "basic" } ], - "specialties": - [ - { "type":1, "val": 0, "subtype": 0, "info": 42 } - ] + "specialties": + [ + { "type":1, "val": 0, "subtype": 0, "info": 42 } + ] }, - { + { "id": 54, "class" : "demoniac", "female": true, - "skill_set": - [ - { "skill": 20, "level": 1 }, - { "skill": 2, "level": 1 } + "skill_set": + [ + { "skill" : "artillery", "level": "basic" }, + { "skill" : "logistics", "level": "basic" } ], - "specialties": - [ - { "type":1, "val": 0, "subtype": 0, "info": 146 } - ] + "specialties": + [ + { "type":1, "val": 0, "subtype": 0, "info": 146 } + ] }, - { + { "id": 55, "class" : "demoniac", "female": true, - "skill_set": - [ - { "skill": 22, "level": 2 } + "skill_set": + [ + { "skill" : "offence", "level": "advanced" } ], - "specialties": - [ - { "type":1, "val": 0, "subtype": 0, "info": 50 } - ] + "specialties": + [ + { "type":1, "val": 0, "subtype": 0, "info": 50 } + ] }, - { + { "id": 56, "class" : "heretic", "spell": 3, "female": false, - "skill_set": - [ - { "skill": 7, "level": 1 }, - { "skill": 24, "level": 1 } + "skill_set": + [ + { "skill" : "wisdom", "level": "basic" }, + { "skill" : "intelligence", "level": "basic" } ], - "specialties": - [ - { "type":2, "val": 5, "subtype": 24, "info": 0 } - ] + "specialties": + [ + { "type":2, "val": 5, "subtype": 24, "info": 0 } + ] }, - { + { "id": 57, "class" : "heretic", "female": false, "spell": 22, - "skill_set": - [ - { "skill": 7, "level": 1 }, - { "skill": 18, "level": 1 } + "skill_set": + [ + { "skill" : "wisdom", "level": "basic" }, + { "skill" : "scholar", "level": "basic" } ], - "specialties": - [ - { "type":3, "val": 3, "subtype": 22, "info": 0 } - ] + "specialties": + [ + { "type":3, "val": 3, "subtype": 22, "info": 0 } + ] }, - { + { "id": 58, "class" : "heretic", "female": false, "spell": 30, - "skill_set": - [ - { "skill": 7, "level": 1 }, - { "skill": 8, "level": 1 } + "skill_set": + [ + { "skill" : "wisdom", "level": "basic" }, + { "skill" : "mysticism", "level": "basic" } ], - "specialties": - [ - { "type":2, "val": 5, "subtype": 8, "info": 1 } - ] + "specialties": + [ + { "type":2, "val": 5, "subtype": 8, "info": 1 } + ] }, - { + { "id": 59, "class" : "heretic", "female": true, "spell": 45, - "skill_set": - [ - { "skill": 7, "level": 1 }, - { "skill": 10, "level": 1 } + "skill_set": + [ + { "skill" : "wisdom", "level": "basic" }, + { "skill" : "ballistics", "level": "basic" } ], - "specialties": - [ - { "type":8, "val": 0, "subtype": 45, "info": 0 } - ] + "specialties": + [ + { "type":8, "val": 0, "subtype": 45, "info": 0 } + ] }, - { + { "id": 60, "class" : "heretic", "female": false, "spell": 53, - "skill_set": - [ - { "skill": 7, "level": 1 }, - { "skill": 21, "level": 1 } + "skill_set": + [ + { "skill" : "wisdom", "level": "basic" }, + { "skill" : "learning", "level": "basic" } ], - "specialties": - [ - { "type":10, "val": 1, "subtype": 3, "info": 0 } - ] + "specialties": + [ + { "type":10, "val": 1, "subtype": 3, "info": 0 } + ] }, - { + { "id": 61, "class" : "heretic", "female": true, "spell": 43, - "skill_set": - [ - { "skill": 7, "level": 1 }, - { "skill": 11, "level": 1 } + "skill_set": + [ + { "skill" : "wisdom", "level": "basic" }, + { "skill" : "eagleEye", "level": "basic" } ], - "specialties": - [ - { "type":8, "val": 0, "subtype": 43, "info": 0 } - ] + "specialties": + [ + { "type":8, "val": 0, "subtype": 43, "info": 0 } + ] }, - { + { "id": 62, "class" : "heretic", "female": false, "spell": 46, - "skill_set": - [ - { "skill": 7, "level": 1 }, - { "skill": 25, "level": 1 } + "skill_set": + [ + { "skill" : "wisdom", "level": "basic" }, + { "skill" : "sorcery", "level": "basic" } ], - "specialties": - [ - { "type":2, "val": 5, "subtype": 25, "info": 0 } - ] + "specialties": + [ + { "type":2, "val": 5, "subtype": 25, "info": 0 } + ] }, - { + { "id": 63, "class" : "heretic", "female": false, "spell": 21, - "skill_set": - [ - { "skill": 7, "level": 1 }, - { "skill": 6, "level": 1 } + "skill_set": + [ + { "skill" : "wisdom", "level": "basic" }, + { "skill" : "leadership", "level": "basic" } ], - "specialties": - [ - { "type":3, "val": 3, "subtype": 21, "info": 0 } - ] + "specialties": + [ + { "type":3, "val": 3, "subtype": 21, "info": 0 } + ] }, - { + { "id": 64, "class" : "deathknight", "female": false, "spell": 53, - "skill_set": - [ - { "skill": 12, "level": 1 }, - { "skill": 26, "level": 1 } + "skill_set": + [ + { "skill" : "necromancy", "level": "basic" }, + { "skill" : "resistance", "level": "basic" } ], - "specialties": - [ - { "type":1, "val": 0, "subtype": 0, "info": 58 } - ] + "specialties": + [ + { "type":1, "val": 0, "subtype": 0, "info": 58 } + ] }, - { + { "id": 65, "class" : "deathknight", "female": false, "spell": 46, - "skill_set": - [ - { "skill": 12, "level": 1 }, - { "skill": 20, "level": 1 } + "skill_set": + [ + { "skill" : "necromancy", "level": "basic" }, + { "skill" : "artillery", "level": "basic" } ], - "specialties": - [ - { "type":1, "val": 0, "subtype": 0, "info": 62 } - ] + "specialties": + [ + { "type":1, "val": 0, "subtype": 0, "info": 62 } + ] }, - { + { "id": 66, "class" : "deathknight", "female": false, "spell": 54, - "skill_set": - [ - { "skill": 12, "level": 1 }, - { "skill": 21, "level": 1 } + "skill_set": + [ + { "skill" : "necromancy", "level": "basic" }, + { "skill" : "learning", "level": "basic" } ], - "specialties": - [ - { "type":1, "val": 0, "subtype": 0, "info": 64 } - ] + "specialties": + [ + { "type":1, "val": 0, "subtype": 0, "info": 64 } + ] }, - { + { "id": 67, "class" : "deathknight", "female": true, "spell": 15, - "skill_set": - [ - { "skill": 12, "level": 1 }, - { "skill": 19, "level": 1 } + "skill_set": + [ + { "skill" : "necromancy", "level": "basic" }, + { "skill" : "tactics", "level": "basic" } ], - "specialties": - [ - { "type":1, "val": 0, "subtype": 0, "info": 60 } - ] + "specialties": + [ + { "type":1, "val": 0, "subtype": 0, "info": 60 } + ] }, - { + { "id": 68, "class" : "deathknight", "female": true, "spell": 15, - "skill_set": - [ - { "skill": 12, "level": 1 }, - { "skill": 22, "level": 1 } + "skill_set": + [ + { "skill" : "necromancy", "level": "basic" }, + { "skill" : "offence", "level": "basic" } ], - "specialties": - [ - { "type":1, "val": 0, "subtype": 0, "info": 66 } - ] + "specialties": + [ + { "type":1, "val": 0, "subtype": 0, "info": 66 } + ] }, - { + { "id": 69, "class" : "deathknight", "female": true, "spell": 15, - "skill_set": - [ - { "skill": 12, "level": 2 } + "skill_set": + [ + { "skill" : "necromancy", "level": "advanced" } ], - "specialties": - [ - { "type":2, "val": 5, "subtype": 12, "info": 0 } - ] + "specialties": + [ + { "type":2, "val": 5, "subtype": 12, "info": 0 } + ] }, - { + { "id": 70, "class" : "deathknight", "female": false, "spell": 15, - "skill_set": - [ - { "skill": 12, "level": 1 }, - { "skill": 22, "level": 1 } + "skill_set": + [ + { "skill" : "necromancy", "level": "basic" }, + { "skill" : "offence", "level": "basic" } ], - "specialties": - [ - { "type":10, "val": 350, "subtype": 6, "info": 0 } - ] + "specialties": + [ + { "type":10, "val": 350, "subtype": 6, "info": 0 } + ] }, - { + { "id": 71, "class" : "deathknight", "female": false, "spell": 27, - "skill_set": - [ - { "skill": 12, "level": 1 }, - { "skill": 23, "level": 1 } + "skill_set": + [ + { "skill" : "necromancy", "level": "basic" }, + { "skill" : "armorer", "level": "basic" } ], - "specialties": - [ - { "type":1, "val": 0, "subtype": 0, "info": 56 } - ] + "specialties": + [ + { "type":1, "val": 0, "subtype": 0, "info": 56 } + ] }, - { + { "id": 72, "class" : "necromancer", "female": true, "spell": 24, - "skill_set": - [ - { "skill": 12, "level": 1 }, - { "skill": 18, "level": 1 } + "skill_set": + [ + { "skill" : "necromancy", "level": "basic" }, + { "skill" : "scholar", "level": "basic" } ], - "specialties": - [ - { "type":3, "val": 3, "subtype": 24, "info": 0 } - ] + "specialties": + [ + { "type":3, "val": 3, "subtype": 24, "info": 0 } + ] }, - { + { "id": 73, "class" : "necromancer", "female": true, "spell": 23, - "skill_set": - [ - { "skill": 12, "level": 1 }, - { "skill": 7, "level": 1 } + "skill_set": + [ + { "skill" : "necromancy", "level": "basic" }, + { "skill" : "wisdom", "level": "basic" } ], - "specialties": - [ - { "type":3, "val": 3, "subtype": 23, "info": 0 } - ] + "specialties": + [ + { "type":3, "val": 3, "subtype": 23, "info": 0 } + ] }, - { + { "id": 74, "class" : "necromancer", "female": false, "spell": 54, - "skill_set": - [ - { "skill": 12, "level": 1 }, - { "skill": 25, "level": 1 } + "skill_set": + [ + { "skill" : "necromancy", "level": "basic" }, + { "skill" : "sorcery", "level": "basic" } ], - "specialties": - [ - { "type":2, "val": 5, "subtype": 25, "info": 0 } - ] + "specialties": + [ + { "type":2, "val": 5, "subtype": 25, "info": 0 } + ] }, - { + { "id": 75, "class" : "necromancer", "female": false, "spell": 27, - "skill_set": - [ - { "skill": 12, "level": 1 }, - { "skill": 11, "level": 1 } + "skill_set": + [ + { "skill" : "necromancy", "level": "basic" }, + { "skill" : "eagleEye", "level": "basic" } ], - "specialties": - [ - { "type":2, "val": 5, "subtype": 11, "info": 1 } - ] + "specialties": + [ + { "type":2, "val": 5, "subtype": 11, "info": 1 } + ] }, - { + { "id": 76, "class" : "necromancer", "female": false, "spell": 39, - "skill_set": - [ - { "skill": 12, "level": 1 }, - { "skill": 8, "level": 1 } + "skill_set": + [ + { "skill" : "necromancy", "level": "basic" }, + { "skill" : "mysticism", "level": "basic" } ], - "specialties": - [ - { "type":3, "val": 39, "subtype": 0, "info": 3 } - ] + "specialties": + [ + { "type":3, "val": 39, "subtype": 0, "info": 3 } + ] }, - { + { "id": 77, "class" : "necromancer", "female": true, "spell": 46, - "skill_set": - [ - { "skill": 12, "level": 1 }, - { "skill": 21, "level": 1 } + "skill_set": + [ + { "skill" : "necromancy", "level": "basic" }, + { "skill" : "learning", "level": "basic" } ], - "specialties": - [ - { "type":8, "val": 0, "subtype": 46, "info": 0 } - ] + "specialties": + [ + { "type":8, "val": 0, "subtype": 46, "info": 0 } + ] }, - { + { "id": 78, "class" : "necromancer", "female": true, "spell": 42, - "skill_set": - [ - { "skill": 12, "level": 2 } + "skill_set": + [ + { "skill" : "necromancy", "level": "advanced" } ], - "specialties": - [ - { "type":2, "val": 5, "subtype": 12, "info": 0 } - ] + "specialties": + [ + { "type":2, "val": 5, "subtype": 12, "info": 0 } + ] }, - { + { "id": 79, "class" : "necromancer", "female": false, "spell": 30, - "skill_set": - [ - { "skill": 12, "level": 1 }, - { "skill": 24, "level": 1 } + "skill_set": + [ + { "skill" : "necromancy", "level": "basic" }, + { "skill" : "intelligence", "level": "basic" } ], - "specialties": - [ - { "type":10, "val": 350, "subtype": 6, "info": 0 } - ] + "specialties": + [ + { "type":10, "val": 350, "subtype": 6, "info": 0 } + ] }, - { + { "id": 80, "class" : "warlock", "female": true, - "skill_set": - [ - { "skill": 3, "level": 1 }, - { "skill": 6, "level": 1 } + "skill_set": + [ + { "skill" : "scouting", "level": "basic" }, + { "skill" : "leadership", "level": "basic" } ], - "specialties": - [ - { "type":1, "val": 0, "subtype": 0, "info": 72 } - ] + "specialties": + [ + { "type":1, "val": 0, "subtype": 0, "info": 72 } + ] }, - { + { "id": 81, "class" : "warlock", "female": false, - "skill_set": - [ - { "skill": 20, "level": 1 }, - { "skill": 22, "level": 1 } + "skill_set": + [ + { "skill" : "artillery", "level": "basic" }, + { "skill" : "offence", "level": "basic" } ], - "specialties": - [ - { "type":1, "val": 0, "subtype": 0, "info": 146 } - ] + "specialties": + [ + { "type":1, "val": 0, "subtype": 0, "info": 146 } + ] }, - { + { "id": 82, "class" : "warlock", "female": false, - "skill_set": - [ - { "skill": 19, "level": 1 }, - { "skill": 22, "level": 1 } + "skill_set": + [ + { "skill" : "tactics", "level": "basic" }, + { "skill" : "offence", "level": "basic" } ], - "specialties": - [ - { "type":1, "val": 0, "subtype": 0, "info": 78 } - ] + "specialties": + [ + { "type":1, "val": 0, "subtype": 0, "info": 78 } + ] }, - { + { "id": 83, "class" : "warlock", "female": false, - "skill_set": - [ - { "skill": 6, "level": 1 }, - { "skill": 26, "level": 1 } + "skill_set": + [ + { "skill" : "leadership", "level": "basic" }, + { "skill" : "resistance", "level": "basic" } ], - "specialties": - [ - { "type":1, "val": 0, "subtype": 0, "info": 74 } - ] + "specialties": + [ + { "type":1, "val": 0, "subtype": 0, "info": 74 } + ] }, - { + { "id": 84, "class" : "warlock", "female": false, - "skill_set": - [ - { "skill": 22, "level": 2 } + "skill_set": + [ + { "skill" : "offence", "level": "advanced" } ], - "specialties": - [ - { "type":10, "val": 350, "subtype": 6, "info": 0 } - ] + "specialties": + [ + { "type":10, "val": 350, "subtype": 6, "info": 0 } + ] }, - { + { "id": 85, "class" : "warlock", "female": false, - "skill_set": - [ - { "skill": 2, "level": 1 }, - { "skill": 19, "level": 1 } + "skill_set": + [ + { "skill" : "logistics", "level": "basic" }, + { "skill" : "tactics", "level": "basic" } ], - "specialties": - [ - { "type":2, "val": 5, "subtype": 2, "info": 0 } - ] + "specialties": + [ + { "type":2, "val": 5, "subtype": 2, "info": 0 } + ] }, - { + { "id": 86, "class" : "warlock", "female": true, - "skill_set": - [ - { "skill": 6, "level": 1 }, - { "skill": 18, "level": 1 } + "skill_set": + [ + { "skill" : "leadership", "level": "basic" }, + { "skill" : "scholar", "level": "basic" } ], - "specialties": - [ - { "type":1, "val": 0, "subtype": 0, "info": 80 } - ] + "specialties": + [ + { "type":1, "val": 0, "subtype": 0, "info": 80 } + ] }, - { + { "id": 87, "class" : "warlock", "female": false, - "skill_set": - [ - { "skill": 19, "level": 1 }, - { "skill": 22, "level": 1 } + "skill_set": + [ + { "skill" : "tactics", "level": "basic" }, + { "skill" : "offence", "level": "basic" } ], - "specialties": - [ - { "type":1, "val": 0, "subtype": 0, "info": 70 } - ] + "specialties": + [ + { "type":1, "val": 0, "subtype": 0, "info": 70 } + ] }, - { + { "id": 88, "class" : "overlord", "spell": 38, "female": false, - "skill_set": - [ - { "skill": 7, "level": 1 }, - { "skill": 18, "level": 1 } + "skill_set": + [ + { "skill" : "wisdom", "level": "basic" }, + { "skill" : "scholar", "level": "basic" } ], - "specialties": - [ - { "type":3, "val": 3, "subtype": 38, "info": 0 } - ] + "specialties": + [ + { "type":3, "val": 3, "subtype": 38, "info": 0 } + ] }, - { + { "id": 89, "class" : "overlord", "female": false, "spell": 27, - "skill_set": - [ - { "skill": 7, "level": 1 }, - { "skill": 8, "level": 1 } + "skill_set": + [ + { "skill" : "wisdom", "level": "basic" }, + { "skill" : "mysticism", "level": "basic" } ], - "specialties": - [ - { "type":2, "val": 5, "subtype": 8, "info": 1 } - ] + "specialties": + [ + { "type":2, "val": 5, "subtype": 8, "info": 1 } + ] }, - { + { "id": 90, "class" : "overlord", "female": false, "spell": 43, - "skill_set": - [ - { "skill": 7, "level": 1 }, - { "skill": 25, "level": 1 } + "skill_set": + [ + { "skill" : "wisdom", "level": "basic" }, + { "skill" : "sorcery", "level": "basic" } ], - "specialties": - [ - { "type":2, "val": 5, "subtype": 25, "info": 0 } - ] + "specialties": + [ + { "type":2, "val": 5, "subtype": 25, "info": 0 } + ] }, - { + { "id": 91, "class" : "overlord", "female": true, "spell": 38, - "skill_set": - [ - { "skill": 7, "level": 2 } + "skill_set": + [ + { "skill" : "wisdom", "level": "advanced" } ], - "specialties": - [ - { "type":3, "val": 3, "subtype": 38, "info": 0 } - ] + "specialties": + [ + { "type":3, "val": 3, "subtype": 38, "info": 0 } + ] }, - { + { "id": 92, "class" : "overlord", "female": false, "spell": 54, - "skill_set": - [ - { "skill": 7, "level": 1 }, - { "skill": 11, "level": 1 } + "skill_set": + [ + { "skill" : "wisdom", "level": "basic" }, + { "skill" : "eagleEye", "level": "basic" } ], - "specialties": - [ - { "type":2, "val": 5, "subtype": 11, "info": 1 } - ] + "specialties": + [ + { "type":2, "val": 5, "subtype": 11, "info": 1 } + ] }, - { + { "id": 93, "class" : "overlord", "female": false, "spell": 23, - "skill_set": - [ - { "skill": 7, "level": 1 }, - { "skill": 3, "level": 2 } + "skill_set": + [ + { "skill" : "wisdom", "level": "basic" }, + { "skill" : "scouting", "level": "advanced" } ], - "specialties": - [ - { "type":3, "val": 3, "subtype": 23, "info": 0 } - ] + "specialties": + [ + { "type":3, "val": 3, "subtype": 23, "info": 0 } + ] }, - { + { "id": 94, "class" : "overlord", "female": true, "spell": 30, - "skill_set": - [ - { "skill": 7, "level": 1 }, - { "skill": 24, "level": 1 } + "skill_set": + [ + { "skill" : "wisdom", "level": "basic" }, + { "skill" : "intelligence", "level": "basic" } ], - "specialties": - [ - { "type":10, "val": 1, "subtype": 4, "info": 0 } - ] + "specialties": + [ + { "type":10, "val": 1, "subtype": 4, "info": 0 } + ] }, - { + { "id": 95, "class" : "overlord", "female": false, "spell": 46, - "skill_set": - [ - { "skill": 7, "level": 1 }, - { "skill": 21, "level": 1 } + "skill_set": + [ + { "skill" : "wisdom", "level": "basic" }, + { "skill" : "learning", "level": "basic" } ], - "specialties": - [ - { "type":8, "val": 0, "subtype": 46, "info": 0 } - ] + "specialties": + [ + { "type":8, "val": 0, "subtype": 46, "info": 0 } + ] }, - { + { "id": 96, "class" : "barbarian", "female": false, - "skill_set": - [ - { "skill": 22, "level": 1 }, - { "skill": 10, "level": 1 } + "skill_set": + [ + { "skill" : "offence", "level": "basic" }, + { "skill" : "ballistics", "level": "basic" } ], - "specialties": - [ - { "type":1, "val": 0, "subtype": 0, "info": 94 } - ] + "specialties": + [ + { "type":1, "val": 0, "subtype": 0, "info": 94 } + ] }, - { + { "id": 97, "class" : "barbarian", "female": false, - "skill_set": - [ - { "skill": 22, "level": 1 }, - { "skill": 20, "level": 1 } + "skill_set": + [ + { "skill" : "offence", "level": "basic" }, + { "skill" : "artillery", "level": "basic" } ], - "specialties": - [ - { "type":1, "val": 0, "subtype": 0, "info": 146 } - ] + "specialties": + [ + { "type":1, "val": 0, "subtype": 0, "info": 146 } + ] }, - { + { "id": 98, "class" : "barbarian", "female": false, - "skill_set": - [ - { "skill": 22, "level": 1 }, - { "skill": 1, "level": 1 } + "skill_set": + [ + { "skill" : "offence", "level": "basic" }, + { "skill" : "archery", "level": "basic" } ], - "specialties": - [ - { "type":1, "val": 0, "subtype": 0, "info": 88 } - ] + "specialties": + [ + { "type":1, "val": 0, "subtype": 0, "info": 88 } + ] }, - { + { "id": 99, "class" : "barbarian", "female": true, - "skill_set": - [ - { "skill": 22, "level": 1 }, - { "skill": 3, "level": 1 } + "skill_set": + [ + { "skill" : "offence", "level": "basic" }, + { "skill" : "scouting", "level": "basic" } ], - "specialties": - [ - { "type":1, "val": 0, "subtype": 0, "info": 92 } - ] + "specialties": + [ + { "type":1, "val": 0, "subtype": 0, "info": 92 } + ] }, - { + { "id": 100, "class" : "barbarian", "female": true, - "skill_set": - [ - { "skill": 22, "level": 1 }, - { "skill": 0, "level": 1 } - ] + "skill_set": + [ + { "skill" : "offence", "level": "basic" }, + { "skill" : "pathfinding", "level": "basic" } + ] }, - { + { "id": 101, "class" : "barbarian", "female": false, - "skill_set": - [ - { "skill": 22, "level": 1 }, - { "skill": 26, "level": 1 } + "skill_set": + [ + { "skill" : "offence", "level": "basic" }, + { "skill" : "resistance", "level": "basic" } ], - "specialties": - [ - { "type":1, "val": 0, "subtype": 0, "info": 84 } - ] + "specialties": + [ + { "type":1, "val": 0, "subtype": 0, "info": 84 } + ] }, - { + { "id": 102, "class" : "barbarian", "female": false, - "skill_set": - [ - { "skill": 22, "level": 2 } + "skill_set": + [ + { "skill" : "offence", "level": "advanced" } ], - "specialties": - [ - { "type":1, "val": 0, "subtype": 0, "info": 90 } - ] + "specialties": + [ + { "type":1, "val": 0, "subtype": 0, "info": 90 } + ] }, - { + { "id": 103, "class" : "barbarian", "female": false, - "skill_set": - [ - { "skill": 22, "level": 1 }, - { "skill": 19, "level": 1 } + "skill_set": + [ + { "skill" : "offence", "level": "basic" }, + { "skill" : "tactics", "level": "basic" } ], - "specialties": - [ - { "type":2, "val": 5, "subtype": 22, "info": 0 } - ] + "specialties": + [ + { "type":2, "val": 5, "subtype": 22, "info": 0 } + ] }, - { + { "id": 104, "class" : "battlemage", "spell": 43, "female": true, - "skill_set": - [ - { "skill": 7, "level": 1 }, - { "skill": 25, "level": 1 } + "skill_set": + [ + { "skill" : "wisdom", "level": "basic" }, + { "skill" : "sorcery", "level": "basic" } ], - "specialties": - [ - { "type":1, "val": 0, "subtype": 0, "info": 86 } - ] + "specialties": + [ + { "type":1, "val": 0, "subtype": 0, "info": 86 } + ] }, - { + { "id": 105, "class" : "battlemage", "female": false, "spell": 15, - "skill_set": - [ - { "skill": 7, "level": 1 }, - { "skill": 6, "level": 1 } + "skill_set": + [ + { "skill" : "wisdom", "level": "basic" }, + { "skill" : "leadership", "level": "basic" } ], - "specialties": - [ - { "type":2, "val": 5, "subtype": 25, "info": 0 } - ] + "specialties": + [ + { "type":2, "val": 5, "subtype": 25, "info": 0 } + ] }, - { + { "id": 106, "class" : "battlemage", "female": true, "spell": 46, - "skill_set": - [ - { "skill": 7, "level": 1 }, - { "skill": 2, "level": 1 } + "skill_set": + [ + { "skill" : "wisdom", "level": "basic" }, + { "skill" : "logistics", "level": "basic" } ], - "specialties": - [ - { "type":1, "val": 0, "subtype": 0, "info": 90 } - ] + "specialties": + [ + { "type":1, "val": 0, "subtype": 0, "info": 90 } + ] }, - { + { "id": 107, "class" : "battlemage", "female": false, "spell": 53, - "skill_set": - [ - { "skill": 7, "level": 1 }, - { "skill": 19, "level": 1 } + "skill_set": + [ + { "skill" : "wisdom", "level": "basic" }, + { "skill" : "tactics", "level": "basic" } ], - "specialties": - [ - { "type":2, "val": 5, "subtype": 2, "info": 0 } - ] + "specialties": + [ + { "type":2, "val": 5, "subtype": 2, "info": 0 } + ] }, - { + { "id": 108, "class" : "battlemage", "female": false, "spell": 44, - "skill_set": - [ - { "skill": 7, "level": 1 }, - { "skill": 20, "level": 1 } + "skill_set": + [ + { "skill" : "wisdom", "level": "basic" }, + { "skill" : "artillery", "level": "basic" } ], - "specialties": - [ - { "type":8, "val": 0, "subtype": 53, "info": 0 } - ] + "specialties": + [ + { "type":8, "val": 0, "subtype": 53, "info": 0 } + ] }, - { + { "id": 109, "class" : "battlemage", "spell": 54, "female": true, - "skill_set": - [ - { "skill": 7, "level": 1 }, - { "skill": 22, "level": 1 } + "skill_set": + [ + { "skill" : "wisdom", "level": "basic" }, + { "skill" : "offence", "level": "basic" } ], - "specialties": - [ - { "type":8, "val": 0, "subtype": 44, "info": 0 } - ] + "specialties": + [ + { "type":8, "val": 0, "subtype": 44, "info": 0 } + ] }, - { + { "id": 110, "class" : "battlemage", "female": true, "spell": 30, - "skill_set": - [ - { "skill": 7, "level": 1 }, - { "skill": 11, "level": 1 } + "skill_set": + [ + { "skill" : "wisdom", "level": "basic" }, + { "skill" : "eagleEye", "level": "basic" } ], - "specialties": - [ - { "type":2, "val": 5, "subtype": 25, "info": 0 } - ] + "specialties": + [ + { "type":2, "val": 5, "subtype": 25, "info": 0 } + ] }, - { + { "id": 111, "class" : "battlemage", "female": false, "spell": 43, - "skill_set": - [ - { "skill": 7, "level": 1 }, - { "skill": 26, "level": 1 } + "skill_set": + [ + { "skill" : "wisdom", "level": "basic" }, + { "skill" : "resistance", "level": "basic" } ], - "specialties": - [ - { "type":2, "val": 5, "subtype": 11, "info": 1 } - ] + "specialties": + [ + { "type":2, "val": 5, "subtype": 11, "info": 1 } + ] }, - { + { "id": 112, "class" : "beastmaster", "female": false, - "skill_set": - [ - { "skill": 23, "level": 1 }, - { "skill": 26, "level": 1 } + "skill_set": + [ + { "skill" : "armorer", "level": "basic" }, + { "skill" : "resistance", "level": "basic" } ], - "specialties": - [ - { "type":10, "val": 1, "subtype": 5, "info": 0 } - ] + "specialties": + [ + { "type":10, "val": 1, "subtype": 5, "info": 0 } + ] }, - { + { "id": 113, "class" : "beastmaster", "female": false, - "skill_set": - [ - { "skill": 23, "level": 1 }, - { "skill": 6, "level": 1 } + "skill_set": + [ + { "skill" : "armorer", "level": "basic" }, + { "skill" : "leadership", "level": "basic" } ], - "specialties": - [ - { "type":1, "val": 0, "subtype": 0, "info": 106 } - ] + "specialties": + [ + { "type":1, "val": 0, "subtype": 0, "info": 106 } + ] }, - { + { "id": 114, "class" : "beastmaster", "female": false, - "skill_set": - [ - { "skill": 23, "level": 1 }, - { "skill": 1, "level": 1 } + "skill_set": + [ + { "skill" : "armorer", "level": "basic" }, + { "skill" : "archery", "level": "basic" } ], - "specialties": - [ - { "type":1, "val": 0, "subtype": 0, "info": 98 } - ] + "specialties": + [ + { "type":1, "val": 0, "subtype": 0, "info": 98 } + ] }, - { + { "id": 115, "class" : "beastmaster", "female": false, - "skill_set": - [ - { "skill": 23, "level": 2 } + "skill_set": + [ + { "skill" : "armorer", "level": "advanced" } ], - "specialties": - [ - { "type":1, "val": 0, "subtype": 0, "info": 100 } - ] + "specialties": + [ + { "type":1, "val": 0, "subtype": 0, "info": 100 } + ] }, - { + { "id": 116, "class" : "beastmaster", "female": false, - "skill_set": - [ - { "skill": 23, "level": 1 }, - { "skill": 22, "level": 1 } + "skill_set": + [ + { "skill" : "armorer", "level": "basic" }, + { "skill" : "offence", "level": "basic" } ], - "specialties": - [ - { "type":2, "val": 5, "subtype": 23, "info": 0 } - ] + "specialties": + [ + { "type":2, "val": 5, "subtype": 23, "info": 0 } + ] }, - { + { "id": 117, "class" : "beastmaster", "female": false, - "skill_set": - [ - { "skill": 23, "level": 1 }, - { "skill": 0, "level": 1 } + "skill_set": + [ + { "skill" : "armorer", "level": "basic" }, + { "skill" : "pathfinding", "level": "basic" } ], - "specialties": - [ - { "type":1, "val": 0, "subtype": 0, "info": 102 } - ] + "specialties": + [ + { "type":1, "val": 0, "subtype": 0, "info": 102 } + ] }, - { + { "id": 118, "class" : "beastmaster", "female": false, - "skill_set": - [ - { "skill": 23, "level": 1 }, - { "skill": 20, "level": 1 } + "skill_set": + [ + { "skill" : "armorer", "level": "basic" }, + { "skill" : "artillery", "level": "basic" } ], - "specialties": - [ - { "type":1, "val": 0, "subtype": 0, "info": 104 } - ] + "specialties": + [ + { "type":1, "val": 0, "subtype": 0, "info": 104 } + ] }, - { + { "id": 119, "class" : "beastmaster", "female": false, - "skill_set": - [ - { "skill": 23, "level": 1 }, - { "skill": 3, "level": 1 } + "skill_set": + [ + { "skill" : "armorer", "level": "basic" }, + { "skill" : "scouting", "level": "basic" } ], - "specialties": - [ - { "type":1, "val": 0, "subtype": 0, "info": 146 } - ] + "specialties": + [ + { "type":1, "val": 0, "subtype": 0, "info": 146 } + ] }, - { + { "id": 120, "class" : "witch", "spell": 45, "female": true, - "skill_set": - [ - { "skill": 7, "level": 2 } + "skill_set": + [ + { "skill" : "wisdom", "level": "advanced" } ], - "specialties": - [ - { "type":1, "val": 0, "subtype": 0, "info": 108 } - ] + "specialties": + [ + { "type":1, "val": 0, "subtype": 0, "info": 108 } + ] }, - { + { "id": 121, "class" : "witch", "female": true, "spell": 15, - "skill_set": - [ - { "skill": 7, "level": 1 }, - { "skill": 8, "level": 1 } + "skill_set": + [ + { "skill" : "wisdom", "level": "basic" }, + { "skill" : "mysticism", "level": "basic" } ], - "specialties": - [ - { "type":2, "val": 5, "subtype": 8, "info": 1 } - ] + "specialties": + [ + { "type":2, "val": 5, "subtype": 8, "info": 1 } + ] }, - { + { "id": 122, "class" : "witch", "female": true, "spell": 54, - "skill_set": - [ - { "skill": 7, "level": 1 }, - { "skill": 5, "level": 1 } + "skill_set": + [ + { "skill" : "wisdom", "level": "basic" }, + { "skill" : "navigation", "level": "basic" } ], - "specialties": - [ - { "type":2, "val": 2, "subtype": 5, "info": 1 } - ] + "specialties": + [ + { "type":2, "val": 2, "subtype": 5, "info": 1 } + ] }, - { + { "id": 123, "class" : "witch", "female": true, "spell": 31, - "skill_set": - [ - { "skill": 7, "level": 1 }, - { "skill": 27, "level": 1 } + "skill_set": + [ + { "skill" : "wisdom", "level": "basic" }, + { "skill" : "firstAid", "level": "basic" } ], - "specialties": - [ - { "type":2, "val": 5, "subtype": 27, "info": 1 } - ] + "specialties": + [ + { "type":2, "val": 5, "subtype": 27, "info": 1 } + ] }, - { + { "id": 124, "class" : "witch", "female": true, "spell": 46, - "skill_set": - [ - { "skill": 7, "level": 1 }, - { "skill": 21, "level": 1 } + "skill_set": + [ + { "skill" : "wisdom", "level": "basic" }, + { "skill" : "learning", "level": "basic" } ], - "specialties": - [ - { "type":8, "val": 0, "subtype": 46, "info": 0 } - ] + "specialties": + [ + { "type":8, "val": 0, "subtype": 46, "info": 0 } + ] }, - { + { "id": 125, "class" : "witch", "female": true, "spell": 27, - "skill_set": - [ - { "skill": 7, "level": 1 }, - { "skill": 25, "level": 1 } + "skill_set": + [ + { "skill" : "wisdom", "level": "basic" }, + { "skill" : "sorcery", "level": "basic" } ], - "specialties": - [ - { "type":2, "val": 5, "subtype": 25, "info": 0 } - ] + "specialties": + [ + { "type":2, "val": 5, "subtype": 25, "info": 0 } + ] }, - { + { "id": 126, "class" : "witch", "female": true, "spell": 35, - "skill_set": - [ - { "skill": 7, "level": 1 }, - { "skill": 24, "level": 1 } + "skill_set": + [ + { "skill" : "wisdom", "level": "basic" }, + { "skill" : "intelligence", "level": "basic" } ], - "specialties": - [ - { "type":2, "val": 5, "subtype": 24, "info": 0 } - ] + "specialties": + [ + { "type":2, "val": 5, "subtype": 24, "info": 0 } + ] }, - { + { "id": 127, "class" : "witch", "female": true, "spell": 46, - "skill_set": - [ - { "skill": 7, "level": 1 }, - { "skill": 11, "level": 1 } + "skill_set": + [ + { "skill" : "wisdom", "level": "basic" }, + { "skill" : "eagleEye", "level": "basic" } ], - "specialties": - [ - { "type":2, "val": 5, "subtype": 11, "info": 1 } - ] + "specialties": + [ + { "type":2, "val": 5, "subtype": 11, "info": 1 } + ] }, - { + { "id": 128, "class" : "planeswalker", "female": true, - "skill_set": - [ - { "skill": 20, "level": 1 }, - { "skill": 22, "level": 1 } + "skill_set": + [ + { "skill" : "artillery", "level": "basic" }, + { "skill" : "offence", "level": "basic" } ], - "specialties": - [ + "specialties": + [ { "type":4, "val": 3, "subtype": 1, "info": 120 }, - { "type":4, "val": 3, "subtype": 2, "info": 120 } - ] + { "type":4, "val": 3, "subtype": 2, "info": 120 } + ] }, - { + { "id": 129, "class" : "planeswalker", "female": true, - "skill_set": - [ - { "skill": 13, "level": 1 }, - { "skill": 19, "level": 1 } + "skill_set": + [ + { "skill" : "estates", "level": "basic" }, + { "skill" : "tactics", "level": "basic" } ], - "specialties": - [ + "specialties": + [ { "type":4, "val": 2, "subtype": 1, "info": 113 }, { "type":4, "val": 1, "subtype": 2, "info": 113 }, - { "type":4, "val": 5, "subtype": 4, "info": 113 } - ] + { "type":4, "val": 5, "subtype": 4, "info": 113 } + ] }, - { + { "id": 130, "class" : "planeswalker", "female": true, - "skill_set": - [ - { "skill": 20, "level": 1 }, - { "skill": 22, "level": 1 } + "skill_set": + [ + { "skill" : "artillery", "level": "basic" }, + { "skill" : "offence", "level": "basic" } ], - "specialties": - [ + "specialties": + [ { "type":4, "val": 1, "subtype": 1, "info": 114 }, { "type":4, "val": 2, "subtype": 1, "info": 114 }, - { "type":4, "val": 2, "subtype": 3, "info": 114 } - ] + { "type":4, "val": 2, "subtype": 3, "info": 114 } + ] }, - { + { "id": 131, "class" : "planeswalker", "female": true, - "skill_set": - [ - { "skill": 19, "level": 2 } + "skill_set": + [ + { "skill" : "tactics", "level": "advanced" } ], - "specialties": - [ - { "type":4, "val": 2, "subtype": 1, "info": 115 } - ] + "specialties": + [ + { "type":4, "val": 2, "subtype": 1, "info": 115 } + ] }, - { + { "id": 132, "class" : "planeswalker", "female": false, - "skill_set": - [ - { "skill": 2, "level": 1 }, - { "skill": 22, "level": 1 } + "skill_set": + [ + { "skill" : "logistics", "level": "basic" }, + { "skill" : "offence", "level": "basic" } ], - "specialties": - [ + "specialties": + [ { "type":4, "val": 3, "subtype": 1, "info": 120 }, - { "type":4, "val": 3, "subtype": 2, "info": 120 } - ] + { "type":4, "val": 3, "subtype": 2, "info": 120 } + ] }, - { + { "id": 133, "class" : "planeswalker", "female": false, - "skill_set": - [ - { "skill": 13, "level": 1 }, - { "skill": 19, "level": 1 } + "skill_set": + [ + { "skill" : "estates", "level": "basic" }, + { "skill" : "tactics", "level": "basic" } ], - "specialties": - [ + "specialties": + [ { "type":4, "val": 2, "subtype": 1, "info": 113 }, { "type":4, "val": 1, "subtype": 2, "info": 113 }, - { "type":4, "val": 5, "subtype": 4, "info": 113 } - ] + { "type":4, "val": 5, "subtype": 4, "info": 113 } + ] }, - { + { "id": 134, "class" : "planeswalker", "female": false, - "skill_set": - [ - { "skill": 22, "level": 2 } + "skill_set": + [ + { "skill" : "offence", "level": "advanced" } ], - "specialties": - [ + "specialties": + [ { "type":4, "val": 1, "subtype": 1, "info": 114 }, { "type":4, "val": 2, "subtype": 1, "info": 114 }, - { "type":4, "val": 2, "subtype": 3, "info": 114 } - ] + { "type":4, "val": 2, "subtype": 3, "info": 114 } + ] }, - { + { "id": 135, "class" : "planeswalker", "female": false, - "skill_set": - [ - { "skill": 19, "level": 1 }, - { "skill": 21, "level": 1 } + "skill_set": + [ + { "skill" : "tactics", "level": "basic" }, + { "skill" : "learning", "level": "basic" } ], - "specialties": - [ - { "type":4, "val": 2, "subtype": 1, "info": 115 } - ] + "specialties": + [ + { "type":4, "val": 2, "subtype": 1, "info": 115 } + ] }, - { + { "id": 136, "class" : "elementalist", "spell": 13, "female": true, - "skill_set": - [ - { "skill": 7, "level": 1 }, - { "skill": 14, "level": 1 } + "skill_set": + [ + { "skill" : "wisdom", "level": "basic" }, + { "skill" : "fireMagic", "level": "basic" } ], - "specialties": - [ - { "type":5, "val": 100, "subtype": 13, "info": 0 } - ] + "specialties": + [ + { "type":5, "val": 100, "subtype": 13, "info": 0 } + ] }, - { + { "id": 137, "class" : "elementalist", "female": true, "spell": 53, - "skill_set": - [ - { "skill": 7, "level": 1 }, - { "skill": 15, "level": 1 } + "skill_set": + [ + { "skill" : "wisdom", "level": "basic" }, + { "skill" : "airMagic", "level": "basic" } ], - "specialties": - [ - { "type":8, "val": 0, "subtype": 53, "info": 0 } - ] + "specialties": + [ + { "type":8, "val": 0, "subtype": 53, "info": 0 } + ] }, - { + { "id": 138, "class" : "elementalist", "female": true, "spell": 15, - "skill_set": - [ - { "skill": 7, "level": 1 }, - { "skill": 16, "level": 1 } + "skill_set": + [ + { "skill" : "wisdom", "level": "basic" }, + { "skill" : "waterMagic", "level": "basic" } ], - "specialties": - [ - { "type":5, "val": 50, "subtype": 15, "info": 0 } - ] + "specialties": + [ + { "type":5, "val": 50, "subtype": 15, "info": 0 } + ] }, - { + { "id": 139, "class" : "elementalist", "female": true, "spell": 46, - "skill_set": - [ - { "skill": 7, "level": 1 }, - { "skill": 17, "level": 1 } + "skill_set": + [ + { "skill" : "wisdom", "level": "basic" }, + { "skill" : "earthMagic", "level": "basic" } ], - "specialties": - [ - { "type":8, "val": 0, "subtype": 46, "info": 0 } - ] + "specialties": + [ + { "type":8, "val": 0, "subtype": 46, "info": 0 } + ] }, - { + { "id": 140, "class" : "elementalist", "female": false, "spell": 43, - "skill_set": - [ - { "skill": 7, "level": 1 }, - { "skill": 14, "level": 1 } + "skill_set": + [ + { "skill" : "wisdom", "level": "basic" }, + { "skill" : "fireMagic", "level": "basic" } ], - "specialties": - [ - { "type":8, "val": 0, "subtype": 43, "info": 0 } - ] + "specialties": + [ + { "type":8, "val": 0, "subtype": 43, "info": 0 } + ] }, - { + { "id": 141, "class" : "elementalist", "female": false, "spell": 47, - "skill_set": - [ - { "skill": 7, "level": 1 }, - { "skill": 15, "level": 1 } + "skill_set": + [ + { "skill" : "wisdom", "level": "basic" }, + { "skill" : "airMagic", "level": "basic" } ], - "specialties": - [ - { "type":8, "val": 0, "subtype": 47, "info": 0 } - ] + "specialties": + [ + { "type":8, "val": 0, "subtype": 47, "info": 0 } + ] }, - { + { "id": 142, "class" : "elementalist", "female": false, "spell": 35, - "skill_set": - [ - { "skill": 7, "level": 1 }, - { "skill": 16, "level": 1 } + "skill_set": + [ + { "skill" : "wisdom", "level": "basic" }, + { "skill" : "waterMagic", "level": "basic" } ], - "specialties": - [ - { "type":10, "val": 350, "subtype": 6, "info": 0 } - ] + "specialties": + [ + { "type":10, "val": 350, "subtype": 6, "info": 0 } + ] }, - { + { "id": 143, "class" : "elementalist", "female": false, "spell": 54, - "skill_set": - [ - { "skill": 7, "level": 1 }, - { "skill": 17, "level": 1 } + "skill_set": + [ + { "skill" : "wisdom", "level": "basic" }, + { "skill" : "earthMagic", "level": "basic" } ], - "specialties": - [ - { "type":10, "val": 350, "subtype": 6, "info": 0 } - ] + "specialties": + [ + { "type":10, "val": 350, "subtype": 6, "info": 0 } + ] }, - { + { "id": 144, "class" : "knight", "female": false, - "skill_set": - [ - { "skill": 6, "level": 2 } + "skill_set": + [ + { "skill" : "leadership", "level": "advanced" } ], - "specialties": - [ - { "type":12, "val": 2, "subtype": 0, "info": 0 } - ] + "specialties": + [ + { "type":12, "val": 2, "subtype": 0, "info": 0 } + ] }, - { + { "id": 145, "class" : "witch", "female": true, "spell": 22, - "skill_set": - [ - { "skill": 7, "level": 1 }, - { "skill": 14, "level": 3 } ], - "specialties": - [ - { "type":11, "val": 14, "subtype": 0, "info": 0 } - ] + "skill_set": + [ + { "skill" : "wisdom", "level": "basic" }, + { "skill" : "fireMagic", "level": "expert" } ], + "specialties": + [ + { "type":11, "val": 14, "subtype": 0, "info": 0 } + ] }, - { + { "id": 146, "class" : "knight", "female": true, - "skill_set": - [ - { "skill": 6, "level": 1 }, - { "skill": 22, "level": 1 } + "skill_set": + [ + { "skill" : "leadership", "level": "basic" }, + { "skill" : "offence", "level": "basic" } ], - "specialties": - [ - { "type":1, "val": 0, "subtype": 0, "info": 4 } - ] + "specialties": + [ + { "type":1, "val": 0, "subtype": 0, "info": 4 } + ] }, - { + { "id": 147, "class" : "wizard", "female": false, "spell": 53, - "skill_set": - [ - { "skill": 7, "level": 2 } + "skill_set": + [ + { "skill" : "wisdom", "level": "advanced" } ], - "specialties": - [ + "specialties": + [ { "type":9, "val": 0, "subtype": 8, "info": 136 }, - { "type":9, "val": 0, "subtype": 34, "info": 136 } - ] + { "type":9, "val": 0, "subtype": 34, "info": 136 } + ] }, - { + { "id": 148, "class" : "ranger", "female": false, - "skill_set": - [ - { "skill": 1, "level": 1 }, - { "skill": 6, "level": 1 } + "skill_set": + [ + { "skill" : "archery", "level": "basic" }, + { "skill" : "leadership", "level": "basic" } ], - "specialties": - [ + "specialties": + [ { "type":9, "val": 0, "subtype": 2, "info": 137 }, - { "type":9, "val": 0, "subtype": 18, "info": 137 } - ] + { "type":9, "val": 0, "subtype": 18, "info": 137 } + ] }, - { + { "id": 149, "class" : "barbarian", "female": false, - "skill_set": - [ - { "skill": 22, "level": 2 } + "skill_set": + [ + { "skill" : "offence", "level": "advanced" } ], - "specialties": - [ + "specialties": + [ { "type":4, "val": 5, "subtype": 1, "info": 96 }, { "type":4, "val": 5, "subtype": 2, "info": 96 }, - { "type":4, "val": 10, "subtype": 3, "info": 96 } - ] + { "type":4, "val": 10, "subtype": 3, "info": 96 } + ] }, - { + { "id": 150, "class" : "deathknight", "female": false, "spell": 54, - "skill_set": - [ - { "skill": 12, "level": 2 } + "skill_set": + [ + { "skill" : "necromancy", "level": "advanced" } ], - "specialties": - [ + "specialties": + [ { "type":4, "val": 5, "subtype": 1, "info": 66 }, { "type":4, "val": 5, "subtype": 2, "info": 66 }, - { "type":4, "val": 10, "subtype": 3, "info": 66 } - ] + { "type":4, "val": 10, "subtype": 3, "info": 66 } + ] }, - { + { "id": 151, "class" : "warlock", "female": true, "spell": 15, - "skill_set": - [ - { "skill": 13, "level": 1 }, - { "skill": 19, "level": 1 } + "skill_set": + [ + { "skill" : "estates", "level": "basic" }, + { "skill" : "tactics", "level": "basic" } ], - "specialties": - [ + "specialties": + [ { "type":13, "val": 5, "subtype": 1, "info": 0 }, - { "type":13, "val": 5, "subtype": 2, "info": 0 } - ] + { "type":13, "val": 5, "subtype": 2, "info": 0 } + ] }, - { + { "id": 152, "class" : "knight", "female": false, - "skill_set": - [ - { "skill": 6, "level": 1 }, - { "skill": 23, "level": 1 } + "skill_set": + [ + { "skill" : "leadership", "level": "basic" }, + { "skill" : "armorer", "level": "basic" } ], - "specialties": - [ - { "type":1, "val": 0, "subtype": 0, "info": 4 } - ] + "specialties": + [ + { "type":1, "val": 0, "subtype": 0, "info": 4 } + ] }, - { + { "id": 153, "class" : "warlock", "female": true, "spell": 15, - "skill_set": - [ - { "skill": 13, "level": 1 }, - { "skill": 19, "level": 1 } + "skill_set": + [ + { "skill" : "estates", "level": "basic" }, + { "skill" : "tactics", "level": "basic" } ], - "specialties": - [ + "specialties": + [ { "type":13, "val": 1, "subtype": 1, "info": 5 }, - { "type":13, "val": 1, "subtype": 1, "info": 5 } - ] + { "type":13, "val": 1, "subtype": 1, "info": 5 } + ] }, - { + { "id": 154, "class" : "barbarian", "female": false, - "skill_set": - [ - { "skill": 19, "level": 1 }, - { "skill": 22, "level": 1 } + "skill_set": + [ + { "skill" : "tactics", "level": "basic" }, + { "skill" : "offence", "level": "basic" } ], - "specialties": - [ - { "type":1, "val": 0, "subtype": 0, "info": 90 } - ] + "specialties": + [ + { "type":1, "val": 0, "subtype": 0, "info": 90 } + ] }, - { + { "id": 155, "class" : "demoniac", "female": false, - "skill_set": - [ - { "skill": 6, "level": 1 }, - { "skill": 19, "level": 1 } + "skill_set": + [ + { "skill" : "leadership", "level": "basic" }, + { "skill" : "tactics", "level": "basic" } ], - "specialties": - [ + "specialties": + [ { "type":4, "val": 4, "subtype": 1, "info": 54 }, { "type":4, "val": 2, "subtype": 2, "info": 54 }, { "type":4, "val": 1, "subtype": 5, "info": 54 } diff --git a/lib/CHeroHandler.cpp b/lib/CHeroHandler.cpp index a788b80ee..f466cd9b3 100644 --- a/lib/CHeroHandler.cpp +++ b/lib/CHeroHandler.cpp @@ -8,6 +8,7 @@ #include "StringConstants.h" #include "BattleHex.h" #include "CModHandler.h" +#include "CTownHandler.h" /* * CHeroHandler.cpp, part of VCMI engine @@ -125,7 +126,7 @@ void CHeroClassHandler::load(const JsonNode & classes) //TODO } -void CHeroClassHandler::loadClass(const JsonNode & heroClass) +CHeroClass *CHeroClassHandler::loadClass(const JsonNode & heroClass) { //TODO } @@ -147,11 +148,49 @@ CHeroHandler::~CHeroHandler() CHeroHandler::CHeroHandler() {} +void CHeroHandler::load(const JsonNode & heroes) +{ + //TODO +} + +CHero * CHeroHandler::loadHero(const JsonNode & hero) +{ + //TODO +} + void CHeroHandler::load() { classes.load(); loadHeroes(); loadObstacles(); + loadTerrains(); + loadBallistics(); + loadExperience(); +} + +void CHeroHandler::loadExperience() +{ + expPerLevel.push_back(0); + expPerLevel.push_back(1000); + expPerLevel.push_back(2000); + expPerLevel.push_back(3200); + expPerLevel.push_back(4600); + expPerLevel.push_back(6200); + expPerLevel.push_back(8000); + expPerLevel.push_back(10000); + expPerLevel.push_back(12200); + expPerLevel.push_back(14700); + expPerLevel.push_back(17500); + expPerLevel.push_back(20600); + expPerLevel.push_back(24320); + expPerLevel.push_back(28784); + expPerLevel.push_back(34140); + while (expPerLevel[expPerLevel.size() - 1] > expPerLevel[expPerLevel.size() - 2]) + { + int i = expPerLevel.size() - 1; + expPerLevel.push_back (expPerLevel[i] + (expPerLevel[i] - expPerLevel[i-1]) * 1.2); + } + expPerLevel.pop_back();//last value is broken } void CHeroHandler::loadObstacles() @@ -220,8 +259,11 @@ void CHeroHandler::loadHeroes() // sex: 0=male, 1=female currentHero->sex = !!hero["female"].Bool(); - BOOST_FOREACH(const JsonNode &set, hero["skill_set"].Vector()) { - currentHero->secSkillsInit.push_back(std::make_pair(set["skill"].Float(), set["level"].Float())); + BOOST_FOREACH(const JsonNode &set, hero["skill_set"].Vector()) + { + int skillID = boost::range::find(SecondarySkill::names, set["skill"].String()) - boost::begin(SecondarySkill::names); + int skillLevel = boost::range::find(SecondarySkill::levels, set["level"].String()) - boost::begin(SecondarySkill::levels); + currentHero->secSkillsInit.push_back(std::make_pair(skillID, skillLevel)); } value = &hero["spell"]; @@ -247,30 +289,10 @@ void CHeroHandler::loadHeroes() currentHero->heroClass = classes.heroClasses[classID]; }); } +} - loadTerrains(); - expPerLevel.push_back(0); - expPerLevel.push_back(1000); - expPerLevel.push_back(2000); - expPerLevel.push_back(3200); - expPerLevel.push_back(4600); - expPerLevel.push_back(6200); - expPerLevel.push_back(8000); - expPerLevel.push_back(10000); - expPerLevel.push_back(12200); - expPerLevel.push_back(14700); - expPerLevel.push_back(17500); - expPerLevel.push_back(20600); - expPerLevel.push_back(24320); - expPerLevel.push_back(28784); - expPerLevel.push_back(34140); - while (expPerLevel[expPerLevel.size() - 1] > expPerLevel[expPerLevel.size() - 2]) - { - int i = expPerLevel.size() - 1; - expPerLevel.push_back (expPerLevel[i] + (expPerLevel[i] - expPerLevel[i-1]) * 1.2); - } - expPerLevel.pop_back();//last value is broken - +void CHeroHandler::loadBallistics() +{ CLegacyConfigParser ballParser("DATA/BALLIST.TXT"); ballParser.endLine(); //header diff --git a/lib/CHeroHandler.h b/lib/CHeroHandler.h index a48fbeb25..c5bc83649 100644 --- a/lib/CHeroHandler.h +++ b/lib/CHeroHandler.h @@ -56,7 +56,6 @@ public: std::vector spec; si32 startingSpell; //-1 if none ui8 sex; // default sex: 0=male, 1=female - //bool operator<(CHero& drugi){if (ID < drugi.ID) return true; else return false;} CHero(); ~CHero(); @@ -131,7 +130,7 @@ public: void load(const JsonNode & classes); /// load one class from json - void loadClass(const JsonNode & heroClass); + CHeroClass * loadClass(const JsonNode & heroClass); ~CHeroClassHandler(); @@ -148,9 +147,9 @@ class DLL_LINKAGE CHeroHandler public: CHeroClassHandler classes; - std::vector< ConstTransitivePtr > heroes; //changed from nodrze + std::vector< ConstTransitivePtr > heroes; - //default costs of going through terrains: dirt, sand, grass, snow, swamp, rough, subterranean, lava, water, rock; -1 means terrain is imapassable + //default costs of going through terrains. -1 means terrain is impassable std::vector terrCosts; struct SBallisticsLevelInfo @@ -169,14 +168,24 @@ public: std::map obstacles; //info about obstacles that may be placed on battlefield std::map absoluteObstacles; //info about obstacles that may be placed on battlefield - void loadObstacles(); //loads info about obstacles - ui32 level(ui64 experience) const; //calculates level corresponding to given experience amount ui64 reqExp(ui32 level) const; //calculates experience required for given level + /// Load multiple heroes from json + void load(const JsonNode & heroes); + + /// Load single hero from json + CHero * loadHero(const JsonNode & hero); + + /// Load everything (calls functions below + classes.load()) void load(); + void loadHeroes(); + void loadExperience(); + void loadBallistics(); void loadTerrains(); + void loadObstacles(); + CHeroHandler(); //c-tor ~CHeroHandler(); //d-tor diff --git a/lib/CModHandler.cpp b/lib/CModHandler.cpp index b25aae01b..027f14a66 100644 --- a/lib/CModHandler.cpp +++ b/lib/CModHandler.cpp @@ -5,6 +5,11 @@ #include "Filesystem/CResourceLoader.h" #include "Filesystem/ISimpleResourceLoader.h" +#include "CCreatureHandler.h" +#include "CArtHandler.h" +#include "CTownHandler.h" +#include "CHeroHandler.h" + /* * CModHandler.h, part of VCMI engine * @@ -131,6 +136,12 @@ std::vector CModHandler::getActiveMods() return activeMods; } +template +void handleData(Handler handler, const JsonNode & config) +{ + handler->load(JsonUtils::assembleFromFiles(config.convertTo >())); +} + void CModHandler::loadActiveMods() { BOOST_FOREACH(std::string & modName, activeMods) @@ -139,9 +150,12 @@ void CModHandler::loadActiveMods() const JsonNode config = JsonNode(ResourceID(modFileName)); - VLC->townh->load(JsonUtils::assembleFromFiles(config ["factions"].convertTo >())); - VLC->creh->load( JsonUtils::assembleFromFiles(config["creatures"].convertTo >())); - VLC->arth->load( JsonUtils::assembleFromFiles(config["artifacts"].convertTo >())); + handleData(VLC->townh, config["factions"]); + handleData(VLC->creh, config["creatures"]); + handleData(VLC->arth, config["artifacts"]); + + handleData(&VLC->heroh->classes, config["heroClasses"]); + handleData(VLC->heroh, config["heroes"]); } VLC->creh->buildBonusTreeForTiers(); //do that after all new creatures are loaded diff --git a/lib/CModHandler.h b/lib/CModHandler.h index 28495c646..594e3762f 100644 --- a/lib/CModHandler.h +++ b/lib/CModHandler.h @@ -3,9 +3,6 @@ #include "Filesystem/CResourceLoader.h" #include "VCMI_Lib.h" -#include "CCreatureHandler.h" -#include "CArtHandler.h" -#include "CTownHandler.h" /* * CModHandler.h, part of VCMI engine diff --git a/lib/CTownHandler.cpp b/lib/CTownHandler.cpp index 70ea4e545..0f0a877ac 100644 --- a/lib/CTownHandler.cpp +++ b/lib/CTownHandler.cpp @@ -6,6 +6,7 @@ #include "JsonNode.h" #include "StringConstants.h" #include "CModHandler.h" +#include "CArtHandler.h" #include "Filesystem/CResourceLoader.h" /* diff --git a/lib/StringConstants.h b/lib/StringConstants.h index 9db0137d0..0122151cb 100644 --- a/lib/StringConstants.h +++ b/lib/StringConstants.h @@ -54,6 +54,11 @@ namespace SecondarySkill "artillery", "learning", "offence", "armorer", "intelligence", // 25 "sorcery", "resistance", "firstAid" }; + + const std::string levels [4] = + { + "none", "basic", "advanced", "expert" + }; } namespace ETownType