// -------------------------------------------------------------------------------
        // Init
        // -------------------------------------------------------------------------------
        public void Init(GameObject _parent = null, int level = 1)
        {
            base.Init(_parent);

            syncProfessions.Clear();

            foreach (BaseProfession profession in defaultProfessions)
            {
                if (profession.template != null)
                {
                    SProfession sProfession = new SProfession(profession.template.GetId, profession.value.Get(level));
                    syncProfessions.Add(sProfession);
                }
            }
        }
        // -------------------------------------------------------------------------------
        // Load
        // -------------------------------------------------------------------------------
        public override void Load(BaseDataTable data)
        {
            syncProfessions.Clear();

            for (int i = 0; i < data.Rows.Count; ++i)
            {
                TemplateProfession tmpl;

                if (DataManager.dictProfession.TryGetValue(data.GetIdHash(i), out tmpl))
                {
                    SProfession sProfession = new SProfession(tmpl.GetId, data.GetLongAsInt(DatabaseManager.fieldValue, i));
                    syncProfessions.Add(sProfession);
                }
                else
                {
                    Debug.LogWarning("Skipped template '" + data.GetString(DatabaseManager.fieldName) + "' as it was not found in Library.");
                }
            }

            data.Cleanup();
        }